此代码是动态创建 zip 存档的有用方法:
(我认为在这里发布整个代码没有帮助)
http://www.codeproject.com/Articles/209731/Csharp-use-Zip-archives-without-external-libraries
我正在使用它来压缩文本文件,以便通过 Response.BinaryWrite 下载。
这是我的实现:
files
并且fileNames
每个都是List<string>
// add the files to a zip
var str = new MemoryStream();
using (var arc = ZipArchive.OpenOnStream(str))
{
for (int i = 0; i < files.Count(); i++)
{
using (var fs = arc.AddFile(fileNames[i]).GetStream(FileMode.Open, FileAccess.ReadWrite))
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
Byte[] bytes = encoding.GetBytes(files[i]);
fs.Write(bytes, 0, bytes.Length);
}
}
}
result = str.GetBuffer();
// return the zip
return result;
我的问题是,任何人都可以想出一种将文件存储在存档中单独文件夹中的方法吗?
谢谢你的帮助!