gpt4 book ai didi

c# - ZipFile.CreateFromDirectory 不包括目录项

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:33 25 4
gpt4 key购买 nike

我有一个基本的 Windows 10 UWP 应用程序,并使用以下代码从目录结构创建一个 .zip 文件:

ZipFile.CreateFromDirectory("/inputpath", "/output.zip");

我注意到生成的 .zip 文件没有任何嵌套目录条目,因此无法在 Mac 上解压缩。

这是我想包含在 zip 文件中的目录结构:

./ziproot
./Data
Version.txt

我使用 API ZipFile.CreateFromDirectory(...) 得到的结果:

$ zipinfo output.zip 
Archive: output.zip 279202 bytes 4 files
-rw---- 2.0 fat 1 b- defN 13-May-16 11:33 Data\Version.txt

当我使用 Windows 资源管理器压缩测试文件夹时,我得到了正确的 zip 结构:

$ zipinfo zipwindows.zip 
Archive: zipwindows.zip 279188 bytes 8 files
drwx--- 2.0 fat 0 b- stor 18-May-16 09:05 Data/
-rw---- 2.0 fat 1 t- stor 13-May-16 11:33 Data/Version.txt

注意上面输出中 Data 目录的第一个条目。

有没有办法让 ZipFile API 包含目录条目,而无需自己遍历目录?

最佳答案

为了将来引用,问题是别的:

ZipFile.CreateFromDirectory() 在路径名中使用反斜杠。使用 Windows 文件资源管理器创建的存档使用正斜杠(这也是我所需要的)。

我没有找到改变 ZipFile 的这种默认行为的方法,而是使用 ZipArchive 自己构建 zip 文件。通过这样做,我什至不需要包含目录条目。

顺便说一下,这些是通过在路径末尾附加正斜杠来添加的(例如 foo/bar/)。

关于c# - ZipFile.CreateFromDirectory 不包括目录项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com