C#webapp中的DotNetZip - 如何更改zip文件夹结构的名称

时间:2011-08-09 18:43:24

标签: c# dotnetzip

这是我的应用中的代码

 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文件。

有人可以帮忙吗?

3 个答案:

答案 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文件的结构。使用

  

“”。表示不允许嵌套文件夹或只是压缩当前文件夹!