【发布时间】:2012-03-15 04:40:32
【问题描述】:
我似乎无法通过 StreamWriter 将文本写入新创建的 zip 文件(不是 gzip)。我使用 SharpZipLib,但不太明白如何让它工作。 DJ Kraze 帮助我将压缩文本文件中的内容流式传输到 StreamReader,我现在尝试相反。我不想先创建一个 csv 文件,然后压缩最终文件,而是想将文本直接流式传输到 zip 容器中要创建的 csv。那可能吗?在我用于获取可与 StreamReader 一起使用的流的 sn-p 下方,它只是给出了我正在寻找的东西的想法,只是这次我想获取与 StreamWriter 一起使用的流。
public static Stream GetZipInputFileStream(string fileName)
{
ZipInputStream zip = new ZipInputStream(File.OpenRead(fileName));
FileStream filestream =
new FileStream(fileName, FileMode.Open, FileAccess.Read);
ZipFile zipfile = new ZipFile(filestream);
ZipEntry item;
if ((item = zip.GetNextEntry()) != null)
{
return zipfile.GetInputStream(item);
}
else
{
return null;
}
}
这是我使用它的方式,我基本上是在寻找它,但反过来(StreamWriter -> 新 zip 容器中的新 csv 文件):
using (StreamReader streamReader = Path.GetExtension(fileName).ToUpper().Equals(".ZIP") ? new StreamReader(FileOperations.GetZipInputFileStream(fileName)) : new StreamReader(fileName))
{
【问题讨论】:
-
请不要在标题前加上“c#”之类的前缀。这就是标签的用途。
-
这不是问题。我尝试通知新的Stack Overflow 用户,这样他们就不会在未来的游戏中这样做。为我节省了大量编辑标题的工作。
标签: c# streamwriter sharpziplib