C# 使用 SharpZipLib 创建 Zip 文件

.Net技术 针尖舞 8年前 (2016-02-05) 4011次浏览 0个评论

C# 使用 SharpZipLib 创建 Zip 文件

我需要把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”了。

C# 使用 SharpZipLib 创建 Zip 文件

我不想要文件夹的路径。我只想要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);


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C# 使用 SharpZipLib 创建 Zip 文件
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!