我需要把3个文件合并到1 个zip文件,使其提供给用户下载。用的 c#,有一个问题一直无法解决:SharpZipLib 把文件压缩到一个子文件夹了。例如,我的文件位置如下:
C:\TTCG\WebSites\Health\ABC.CSV
C:\TTCG\WebSites\Health\XYZ.CSV
C:\TTCG\WebSites\Health\123.CSV
但在zip文件中,文件被压缩在目录”TTCG\WebSites\Health”了。
我不想要文件夹的路径。我只想要3 个zip文件,不需要文件夹。怎样才能实现呢?
生成zip文件的代码如下:
//codebye.com 编译
ZipFile z = ZipFile.Create(Server.MapPath("~" + @"\Accident.zip"));
//初始化文件以接受更新
z.BeginUpdate();
//添加文件到zip文件中
z.Add(Server.MapPath("~" + @"\ABC.csv"));
z.Add(Server.MapPath("~" + @"\XYZ.csv"));
z.Add(Server.MapPath("~" + @"\123.csv"));
//完成后提交更新
z.CommitUpdate();
//关闭文件
z.Close();
——参考解答——
//codebye.com 编译,根据常见问题解答,你需要手动剔除文件夹路径。
如何创建一个不包含文件夹的Zip文件?
Remove the path portion of the filename used to create a ZipEntry before it is added to a ZipOutputStream
ZipEntry entry = new ZipEntry(Path.GetFileName(fullPath));
常见问题解答可以在 这里 查看.
看起来像是类库有限制,希望有帮助。
如果你的文件在FileSystemInfo中,可以尝试:z.Add(file.FullName, Path.GetFileName(file.FullName));
这将会将文件添加到zip的根目录。z.Add(pathToFile, pathInZipFile);