SplittingStreamWriter: StreamWriter that splits files.
This commit is contained in:
65
VAR.DatabaseExplorer/Code/SplittingStreamWriter.cs
Normal file
65
VAR.DatabaseExplorer/Code/SplittingStreamWriter.cs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user