66 lines
1.7 KiB
C#
66 lines
1.7 KiB
C#
using System.IO;
|
|
using System.Text;
|
|
|
|
namespace VAR.DatabaseExplorer.Code
|
|
{
|
|
class SplittingStreamWriter : TextWriter
|
|
{
|
|
private string _baseFileName = null;
|
|
private int _fileNumber = 0;
|
|
|
|
private StreamWriter _currentStreamWriter = null;
|
|
|
|
public SplittingStreamWriter(string baseFileName)
|
|
{
|
|
_baseFileName = baseFileName;
|
|
_currentStreamWriter = new StreamWriter(string.Format(_baseFileName, _fileNumber));
|
|
}
|
|
|
|
public override void Write(char value)
|
|
{
|
|
_currentStreamWriter.Write(value);
|
|
}
|
|
|
|
public override void Write(string value)
|
|
{
|
|
_currentStreamWriter.Write(value);
|
|
}
|
|
|
|
public override void WriteLine()
|
|
{
|
|
_currentStreamWriter.WriteLine();
|
|
}
|
|
|
|
public override void WriteLine(string value)
|
|
{
|
|
_currentStreamWriter.WriteLine(value);
|
|
}
|
|
|
|
public override Encoding Encoding
|
|
{
|
|
get { return Encoding.Default; }
|
|
}
|
|
|
|
public void Split()
|
|
{
|
|
_currentStreamWriter.Close();
|
|
_fileNumber++;
|
|
_currentStreamWriter = new StreamWriter(string.Format(_baseFileName, _fileNumber));
|
|
}
|
|
|
|
public static void Split(object obj)
|
|
{
|
|
SplittingStreamWriter splittingStreamWriter = obj as SplittingStreamWriter;
|
|
if (obj == null) { return; }
|
|
splittingStreamWriter.Split();
|
|
}
|
|
|
|
public override void Close()
|
|
{
|
|
_currentStreamWriter.Close();
|
|
_currentStreamWriter = null;
|
|
_fileNumber = 0;
|
|
}
|
|
}
|
|
}
|