我正在使用 C# 开发一个应用程序,并且我正在尝试将来自不同位置的几个文件压缩成一个压缩文件。
我的问题是我希望这个 zip 文件中的结构与文件中的结构不同。
例子:
FileA -> example.zip: \DirX\DirY
FileB -> example.zip: \DirX\DirZ
FileC -> example.zip: \DirW
我可以保留文件夹结构但不能更改“目标”路径。.Net 中是否有任何外部工具或以编程方式来实现这一目标?
我正在使用 C# 开发一个应用程序,并且我正在尝试将来自不同位置的几个文件压缩成一个压缩文件。
我的问题是我希望这个 zip 文件中的结构与文件中的结构不同。
例子:
FileA -> example.zip: \DirX\DirY
FileB -> example.zip: \DirX\DirZ
FileC -> example.zip: \DirW
我可以保留文件夹结构但不能更改“目标”路径。.Net 中是否有任何外部工具或以编程方式来实现这一目标?
你试过dotnetzip吗?- 这很简单,只需使用AddEntry
/AddFile
方法在 zip 文件中使用不同的路径作为名称。
强大的解决方案 - 按条目处理 zip 文件,然后使用替换路径提取/压缩文件(可以是文件的实际路径,您可以在压缩之前将其放入临时文件夹或在提取后复制到所需位置)。文件的原始路径可以保存为文本,然后也存储在 zip 中(因为它无论如何都会具有您指定的结构,因此您可以保留让我们说“extract.txt”文件来存储原始文件位置以进行提取)。
您可以使用库(ICSharpCode.SharpZipLib 或其他)或使用 .net framework 4.5 ZipArchive对 zip 文件本身执行基本操作。