这是我的应用中的代码
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=" + "filename.zip");
using (ZipFile zip = new ZipFile())
{
zip.AddEntry(@"F:\My Pictures\2011\DSC04854.jpg", @"\");
zip.AddEntry(@"F:\My Pictures\2011\DSC04854.jpg", @"\");
zip.AddEntry(@"F:\My Pictures\2011\DSC04854.jpg", @"\");
zip.Save(Response.OutputStream);
}
Response.Close();
我想创建一个带有简化文件夹结构(即一个文件夹)的zip文件,该文件作为输出写入。
我已经看到了类似问题的一些答案,我已经尝试了很多建议,但是我没有得到预期的结果。此代码生成一个包含完整文件夹结构的zip文件。
有人可以帮忙吗?
答案 0 :(得分:1)
您正在使用AddEntry,您想要的是AddFile; AddFile的第二个参数(当字符串时)是内部目录。
答案 1 :(得分:0)
将条目添加到Zip时,第二个参数可以留空以将文件放在文件夹的根目录中。
zip.AddEntry(link_to_file.format, string.Empty);
答案 2 :(得分:0)
我遇到了同样的问题,但使用zip.AddFiles(filePaths)
仍然会创建完整的分层zip文件。我来过另一个只是解决这个问题的重载。只需使用:
zip.AddFiles(filePaths,false,".")
第二个参数是>保留层次结构
第三个参数是您只想用来生成zip文件的结构。使用
“”。表示不允许嵌套文件夹或只是压缩当前文件夹!