SplittingStreamWriter: StreamWriter that splits files.

This commit is contained in:
2019-10-07 11:06:00 +02:00
parent 1527fea2bc
commit d0261de802
2 changed files with 66 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
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;
}
}
}

View File

@@ -97,6 +97,7 @@
<Compile Include="Code\DataTransfer\Table.cs" /> <Compile Include="Code\DataTransfer\Table.cs" />
<Compile Include="Code\DataTransfer\User.cs" /> <Compile Include="Code\DataTransfer\User.cs" />
<Compile Include="Code\DataTransfer\ViewDefinition.cs" /> <Compile Include="Code\DataTransfer\ViewDefinition.cs" />
<Compile Include="Code\SplittingStreamWriter.cs" />
<Compile Include="Code\TableRowHelper.cs" /> <Compile Include="Code\TableRowHelper.cs" />
<Compile Include="Controls\CustomListView.cs"> <Compile Include="Controls\CustomListView.cs">
<SubType>Component</SubType> <SubType>Component</SubType>