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

问题描述:

我正在用C#开发一个应用程序,我试图将来自不同位置的几个文件压缩成一个压缩文件。将文件压缩成具有特定目录结构的.zip文件 - C#/。Net

我的问题是,我想在这个zip文件中有一个不同于文件结构的结构。

例子:

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

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

+2

你有什么试过?你看过SharpZipLib和其他类似的软件包吗? – 2013-02-15 14:27:37

你试过dotnetzip? - 通过使用AddEntry/AddFile方法在zip文件中仅使用不同的路径作为名称,可以很简单。

另见DotNetZip: Add Files to Dynamically Created Archive Directory

+0

我会看看它,但看起来很有希望。不知道为什么我以前没见过它:/ – 2013-02-15 14:55:32

鲁棒的解决方案 - 过程zip文件通过条目,然后通过使用取代的路径(其可以是文件的实际路径,这可以把在临时文件夹压缩和解之前或复制到提取/拉链提取后需要的位置)。文件的原始路径可以保存为文本,然后保存在zip中(因为反正会有你指定的结构,所以你可以保留让我们说“extract.txt”文件存储原始文件的位置提取)。

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

+0

好主意,最糟糕的情况是我会这么做! – 2013-02-15 14:56:13