在 C# 中,我的应用程序在 Windows Server 2008 R2 上运行,我需要能够提取在 Windows 或 MAC OSX 上创建的任何 ZIP 文件。我目前正在使用DotNetZip 库。
但是这个库在提取文件名中带有特殊北欧字符的 MACOSX ZIP 档案时遇到了麻烦。我尝试在 Encoding.GetEncoding(string) 方法中指定不同的编码,包括macintosh 。
Windows 内置的 zip 工具也会弄乱特殊字符。WinRAR 3.x 也可以。但是 WinRAR 4.x 似乎是唯一能正确完成这项工作的工具。
是否有可能使用任何可用的 C# ZIP 库来提取这样的 ZIP 存档?
更新:这是使用 Mac OSX 中的默认 Zip 功能创建的 zip 存档的示例。第一个屏幕截图显示了 Windows Zip 功能如何无法解码文件名。第二个屏幕截图显示了使用 WinRAR 4.11 打开的存档:
从 Mac OSX下载示例 ZIP 存档