使用 SharpZipLib 将文件添加到不带路径的 ZIP

2024-04-19

我需要将 3 个文件合并为 1 个 zip 文件,并可供用户下载。我能够实现我的要求,除了一件事:它将文件压缩到子文件夹中。

例如,我的文件位置如下:

C:\TTCG\WebSites\Health\ABC.CSV
C:\TTCG\WebSites\Health\XYZ.CSV
C:\TTCG\WebSites\Health\123.CSV

但在 zip 文件中,它使用“TTCG\WebSites\Health\”作为路径来压缩文件夹中的文件。请参阅附件。

我不想要路径中的文件夹。我只想要 zip 文件中的 3 个文件,不带文件夹。我怎样才能做到这一点?

我生成zip文件的代码如下:

ZipFile z = ZipFile.Create(Server.MapPath("~" + @"\Accident.zip"));

//initialize the file so that it can accept updates
z.BeginUpdate();

//add the file to the zip file        
z.Add(Server.MapPath("~" + @"\ABC.csv"));
z.Add(Server.MapPath("~" + @"\XYZ.csv"));
z.Add(Server.MapPath("~" + @"\123.csv"));        

//commit the update once we are done
z.CommitUpdate();
//close the file
z.Close();

根据常见问题解答,您必须手动删除文件夹路径:

如何创建没有文件夹的 Zip 文件?

删除用于创建 ZipEntry 的文件名的路径部分 在添加到 ZipOutputStream 之前

ZipEntry entry = new ZipEntry(Path.GetFileName(fullPath));

常见问题解答可以找到here http://wiki.sharpdevelop.net/SharpZipLib_FAQ.ashx.

这似乎是图书馆的限制。希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SharpZipLib 将文件添加到不带路径的 ZIP 的相关文章

随机推荐