编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

ICSharpCode.SharpZipLib压缩文件不带文件路径(目录)

电子发票慢慢普及,最近公司的项目需要让客户批量下载电子发票,于是用到了ICSharpCode.SharpZipLib类库。

在使用的过程中发现,利用ICSharpCode.SharpZipLib压缩文件,会把目录自动封装进去,而我是不需要目录结构的,只要把电子发票放在根目录。

注意啊,我是在web项目中。具体代码如下

string path = @"D:\压缩测试\第一层\第二层\第三层\";
            string zipName = Guid.NewGuid().ToString("N") + ".zip";
            using (ZipFile zip = ZipFile.Create(path + zipName))
            {
                zip.BeginUpdate();
                zip.NameTransform = new ZipNameTransform(path);
                zip.Add(path + "wKj6yFzs4zqIdmZsAACR84TfO9sAAIiRQKpNyIAAJIL036.pdf");
                zip.Add(path + "wKj6yFzs4zqIYy59AACTK4FTYb0AAIiRQKmvc4AAJND190.pdf");
                zip.CommitUpdate();
            }

当我压缩完成,发现压缩包里面pdf文件,是有目录结构的,我只想把pdf放在根目录下。

网上,也找了很多方法,但是都没什么作用。

比如这个:SharpZipLib 压缩多个文件去掉压缩文件中的目录文件夹用c#的ZipFile库进行文件压缩后,多余父目录问题

最后,我通过在zip.BeginUpdate();后增加代码zip.NameTransform = new ZipNameTransform(path);解决了该问题。


未经允许不得转载: 技术文章 » .NET编程 » ICSharpCode.SharpZipLib压缩文件不带文件路径(目录)