【问题标题】:DS_Store file is created on ZipArchive::extractToDS_Store 文件在 ZipArchive::extractTo 上创建
【发布时间】:2023-03-23 12:35:01
【问题描述】:

我正在创建一个 PHP 脚本,它应该将存储在 php 文件目录中的 zip 存档解压缩到一个文件夹中。
一切正常,但是当我检查结果时,我在目录下找到 2 个文件夹:一个名为 zip 存档名称的文件夹,另一个名为 __MACOSX 的文件夹。我不知道这个文件夹是怎么来的,尤其是当我使用 Windows 7 时。其次,在每个文件夹中都有一个名为 .DS_Store 的文件。
现在,我不知道这些东西是如何到达那里的。这是我的代码:

$zip = new ZipArchive;
if ($zip->open('File.zip')) {
    $path = getcwd() . "/details/" . trim($id) . "/";
    $path = str_replace("\\","/",$path);
    echo $path;
    echo $zip->extractTo($path);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}

这是提取 zip 文件或触摸它的唯一代码,如您所见,没有像 __MACOSX 或 .DS_Store 这样的代码。

你能帮帮我吗?

【问题讨论】:

  • 别担心,.DS_store 是 macOS 为记住如何显示文件夹而创建的文件(例如如何重新排列每个文件),您可以将其删除 ????
  • @ArthurGuiot 但我使用的是 Windows。那个正在创建的文件夹呢?
  • 文件在存档中,它们是从中提取的。档案很可能是在 macOS 系统上创建的。这些文件在 macOS 上是隐藏的,许多用户甚至在不知情的情况下将它们包含在他们创建的档案中。 .DS_Store 或多或少相当于 Windows 资源管理器生成的 Thumbs.db。
  • @axiac 更接近的等价物是Desktop.ini。 .DS_Store 用于存储 Finder 窗口设置,例如窗口大小/位置、“查看为”模式、图标位置……

标签: php zip unzip ziparchive


【解决方案1】:

File.zip 起源于 OSX 系统。 __MACOSX 和 .DS_Store 对任何其他操作系统的使用或影响为 0。删除/忽略它们并继续运输。

顺便说一句,您可能希望将指定的文件系统对象添加到您的项目 .gitignore。

https://superuser.com/questions/104500/what-is-macosx-folder https://en.wikipedia.org/wiki/.DS_Store

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多