-2

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

我的问题是我希望这个 zip 文件中的结构与文件中的结构不同。

例子:

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

我可以保留文件夹结构但不能更改“目标”路径。.Net 中是否有任何外部工具或以编程方式来实现这一目标?

4

2 回答 2

2

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

另请参阅DotNetZip:将文件添加到动态创建的存档目录

于 2013-02-15T14:28:46.463 回答
0

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

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

于 2013-02-15T14:38:24.727 回答