将文件压缩为具有特定目录结构的.zip文件 - C#/。Net

时间:2013-02-15 14:24:30

标签: c# .net vb.net compression zip

我正在使用C#开发应用程序,并且我尝试将来自不同位置的几个文件压缩为压缩文件。

我的问题是我想在这个zip文件中使用与文件结构不同的结构。

示例:

FileA -> example.zip: \DirX\DirY
FileB -> example.zip: \DirX\DirZ
FileC -> example.zip: \DirW

我可以保留文件夹结构,但不能更改"目的地"路径。在.Net中是否有任何外部工具或以编程方式实现此目的?

2 个答案:

答案 0 :(得分:2)

你尝试dotnetzip了吗? - 只需使用AddEntry / AddFile方法在zip文件中使用不同的路径作为名称,即可轻松完成。

另见DotNetZip: Add Files to Dynamically Created Archive Directory

答案 1 :(得分:0)

强大的解决方案 - 按条目处理zip文件,然后使用替换路径提取/ zip(可以是文件的实际路径,您可以在解压缩之前将其放入临时文件夹中,或者在解压缩后复制到所需位置)。文件的原始路径可以保存为文本,然后也存储在zip中(因为它无论如何都将具有您指定的结构,因此您可以保留让我们说“extract.txt”文件来存储原始文件位置以进行提取)。 / p>

您可以使用libs(ICSharpCode.SharpZipLib或其他)或使用.net framework 4.5 ZipArchive来执行zip文件本身的基本操作。