【问题标题】:Strange filenames with embedded slashes - Mac/Windows conflict带有嵌入斜杠的奇怪文件名 - Mac/Windows 冲突
【发布时间】:2012-05-12 19:04:46
【问题描述】:

本周我编写了一些代码来生成 zip 文件,并尝试在 Windows 和 Mac 机器上使用它。 Mac 工作正常(它是在考虑 Mac 的情况下编写的),但 Windows 不那么好。生成的 zip 文件在我的 Mac 上打开时包含如下所示的单级文件:

而不是预期的 flash_out/assets 等嵌套文件系统。我并不十分关心如何修复生成这些文件的代码,但我很担心修复这些特定文件,以便我可以在我的 mac 上编译它们.就目前而言,我不能使用这些。

奇怪的是,在 Windows 机器上打开这个 zip 确实会将其解释为一系列包含文件的嵌套文件夹。但是将该文件系统压缩并将其发送回 Mac,问题仍然存在。我以前从未见过这样的东西。

【问题讨论】:

  • 您使用哪个 zip 工具在 PC 上创建文件?您在 Mac 上使用的是哪个 zip 工具?
  • 文件名存储在带有“\”斜线的 ZIP 存档中,Mac OS 允许在文件名中使用这种斜线。您使用哪个库来生成 zip 文件,以及您使用什么工具来解压缩?
  • Java 用于在 Windows 机器上创建 ZIP。 Mac 正在使用默认的“双击解压缩”功能进行解压缩。

标签: java windows macos zip filenames


【解决方案1】:

假设您使用的是 bash shell,请 cd 进入包含乱码文件路径的文件夹,然后尝试以下操作:

for badfile in *\\*; do
    goodfile="${badfile//\\//}"
    mkdir -p "$(dirname "$goodfile")"
    mv "$badfile" "$goodfile"
done

【讨论】:

    猜你喜欢
    • 2015-03-24
    • 2019-04-09
    • 2022-08-11
    • 2020-08-11
    • 2020-11-19
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多