首页 > 解决方案 > 使用 System.IO.Compression 创建的 Zip 文件不会在 Mac 上显示目录

问题描述

我正在创建一个包含以下结构的 zip 文件:

readme.html
我的目录\foo.txt

var zip = new ZipArchive(...);
zip.CreateEntryFromFile("c:\\readme.html", "readme.html");
zip.CreateEntryFromFile("c:\\foo.txt", "my-directory\\foo.txt");

这将创建一个在 Windows 上运行良好的 zip 文件:

在此处输入图像描述

但是,如果我在 Mac 上打开 zip 文件,则没有my-directory文件夹。相反,foo.txt名称为my-directory\foo.txt

在此处输入图像描述

如何将目录添加到 zip 文件中,以便该目录显示在 Mac 上的 zip 中?

标签: c#macoszipfile

解决方案


原来,我忘记了 Windows 和 Mac 之间的目录分隔符是不同的。

修复方法是使用“/”字符创建目录,该字符适用于 Windows 和 Mac:

zip.CreateEntryFromFile("c:\\foo.txt", "my-directory/foo.txt");

推荐阅读