我正在处理的程序目前正在使用 aStreamWriter
在目标文件夹中创建一个或多个文本文件。关闭StreamWriter
类,我通过指令使用WriteLine
它的IDisposable
接口Using
(对于隐式.Close
)。
我需要添加一个选项以在目标文件夹内的 zip 存档中创建一个或多个文本文件。我打算更改现有代码以使用流,因此可以使用 ZIP 文件作为输出(计划使用DotNetZip)。
我正在考虑创建一些GetOutputStream
功能并将其提供给当前存在的方法。此函数将确定是否设置了归档选项,并创建普通文件或归档它们。问题是MemoryStream
看起来像一个很好的缓冲区类与 一起使用,在继承层次结构DotNetZip
中不相交。StreamWriter
看起来我唯一的选择是创建一些IWriteLine
接口,它将实现WriteLine
和IDisposable
. StreamWriter
然后从和分支两个新的子类MemoryStream
,并IWriteLine
在其中实现。
有更好的解决方案吗?
当前代码在概念上如下所示:
Using sw As StreamWriter = File.CreateText(fullPath)
sw.WriteLine(header)
sw.WriteLine(signature)
While dr.Read 'dr=DataReader
Dim record As String = GetDataRecord(dr)
sw.WriteLine(record)
End While
End Using
对于代码示例,VB.NET或C#都可以,尽管这更像是一个概念性问题。
编辑:不能使用 .NET 4.5 System.IO.Compression.ZipArchive
,必须坚持使用 .NET 4.0。我们仍然需要支持在 Windows 2003 上运行的客户端。