Files
VAR.DatabaseExplorer/VAR.DatabaseExplorer/Code/SplittingStreamWriter.cs

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;
}
}
}