我需要将 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(使用前将#替换为@)