代码之家  ›  专栏  ›  技术社区  ›  Judah Gabriel Himango

使用System.IO.Compression创建的Zip文件不会在Mac上显示目录

  •  0
  • Judah Gabriel Himango  · 技术社区  · 3 年前

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

    自述文件.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文件:

    enter image description here

    my-directory 文件夹。相反, foo.txt 有一个名字 my-directory\foo.txt

    enter image description here

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

    1 回复  |  直到 3 年前
        1
  •  0
  •   Rodrigo Rodrigues    3 年前

    为了更好的便携性,我建议您使用 Path 在c#中上课,形成你的路径,如下所示:

    string root = @"c:\"; // different mount point if in mac
    
    zip.CreateEntryFromFile(Path.Combine(root, "readme.html"), "readme.html");
    zip.CreateEntryFromFile(Path.Combine(root, "my-directory", "foo.txt"), Path.Combine("my-directory", "foo.txt"));
    
        2
  •  0
  •   Judah Gabriel Himango    3 年前

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

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