电子发票慢慢普及,最近公司的项目需要让客户批量下载电子发票,于是用到了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);解决了该问题。