1

这是我的应用程序中的代码

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

任何人都可以帮忙吗?

4

3 回答 3

1

您正在使用 AddEntry,您想要的是 AddFile;AddFile 的第二个参数(当一个字符串时)是内部目录。

于 2011-08-09T18:47:11.627 回答
0

我有同样的问题,但zip.AddFiles(filePaths)仍然使用创建完整的分层 zip 文件。我遇到了另一个简单地解决这个问题的重载。只是使用: zip.AddFiles(filePaths,false,".") 第二个参数是>保留层次结构第三个参数是您只想用来生成zip文件的结构。使用

“。” 意味着不允许嵌套文件夹或仅压缩当前文件夹!

于 2015-03-15T20:10:31.780 回答
0

将条目添加到 Zip 时,可以将第二个参数留空以将文件放在文件夹的根目录中。

zip.AddEntry(link_to_file.format, string.Empty);
于 2011-08-09T18:49:42.407 回答