在 Mac OS 中创建的 zip 文件中的 __MACOSX 隐藏文件夹里面有什么

问题描述 投票:0回答:3

我是 Windows 用户,我的应用程序接受 zip 文件。

我意识到,当用户使用 Mac OSX 中内置的 zip 压缩器压缩文件时,会在提取的 zip 中创建一个名为“__MACOSX”的额外文件夹。

我需要在我的应用程序中处理这个文件夹(__MACOSX)。我只想知道隐藏的 __MACOSX 目录中有什么。它是空的还是包含一些文件?如果它包含文件,那么它包含多少个文件?如果有文件,文件数量是固定的吗?有哪些类型的文件(空/非空等)?需要完整信息。

检查 Mac 操作系统很简单,但我没有 Mac,所以我无法弄清楚这个文件夹中有什么。我搜索过但找不到答案。

macos zip
3个回答
2
投票

只是为了添加@Yoric 的答案,隐藏文件以 AppleDouble 格式编写,该格式最初用于在 Unix 系统上存储附加元数据。

示例(GraCoL 2013 ICC):

unzip -d swop SWOP2013_and_GRACoL2013_ICC_Profiles.zip
file swop/__MACOSX/._GRACoL2013_CRPC6.icc
# swop/__MACOSX/._GRACoL2013_CRPC6.icc: AppleDouble encoded Macintosh file

即使不知道文件格式(记录在 RFC 1740 中),您也可以或多或少地弄清楚它在说什么。在我们的例子中:

$ hexdump -C swop/__MACOSX/._GRACoL2013_CRPC6.icc
00000000  00 05 16 07 00 02 00 00  4d 61 63 20 4f 53 20 58  |........Mac OS X|
00000010  20 20 20 20 20 20 20 20  00 02 00 00 00 09 00 00  |        ........|
00000020  00 32 00 00 00 c2 00 00  00 02 00 00 00 f4 00 00  |.2..............|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000050  00 00 00 00 41 54 54 52  00 00 00 00 00 00 00 f4  |....ATTR........|
00000060  00 00 00 98 00 00 00 5c  00 00 00 00 00 00 00 00  |.......\........|
00000070  00 00 00 00 00 00 00 01  00 00 00 98 00 00 00 5c  |...............\|
00000080  00 00 15 63 6f 6d 2e 61  70 70 6c 65 2e 71 75 61  |...com.apple.qua|
00000090  72 61 6e 74 69 6e 65 00  71 2f 30 30 30 31 3b 35  |rantine.q/0001;5|
000000a0  32 33 39 64 33 32 37 3b  47 6f 6f 67 6c 65 5c 78  |239d327;Google\x|
000000b0  32 30 43 68 72 6f 6d 65  2e 61 70 70 3b 31 33 41  |20Chrome.app;13A|
000000c0  39 30 46 46 32 2d 34 43  45 41 2d 34 35 37 33 2d  |90FF2-4CEA-4573-|
000000d0  38 37 45 32 2d 32 35 33  41 37 30 35 38 30 34 39  |87E2-253A7058049|
000000e0  44 7c 63 6f 6d 2e 67 6f  6f 67 6c 65 2e 43 68 72  |D|com.google.Chr|
000000f0  6f 6d 65 00                                       |ome.|
000000f4

我们正在查看

com.apple.quarantine
扩展属性的一个实例,在本例中表示该文件是使用 Chrome 下载的。好吧,至少对于打包这个 zip 文件的人来说是这样。


1
投票

我压缩了一个包含以下内容的文件夹“Pack”:

  • 自述.txt
  • 图片.jpg
  • 脚本.sh
  • 声音.m4a

“__MACOSX”里面有什么:

  • 打包(文件夹)
  • Pack/.Readme.txt(文件)
  • Pack/.Image.jpg(文件)
  • Pack/.Script.sh(文件)

因此,“__MACOSX”似乎包含被压缩的文件夹结构的复制,其中隐藏文件以点开头,而不是真实文件。但是,并非所有文件都在那里,因此可能很难预测有多少文件(在我的测试中,真实文件

Sound.m4a
没有等效的
.Sound.m4a
。)

那些“隐藏”文件不是空的,它们是保存元数据的二进制文件。

为什么不忽略这个“__MACOSX”文件夹,并将其删除,而不是处理它?


0
投票

我得到了一个压缩文件夹,其中应包含相应文件夹的所有文件,但可能包含已更改的内容。压缩文件夹并不包含所有预期的文件,其他文件包含在 __MACOSX 子文件夹中,具有相同的名称,但以“._”开头。 当我删除 __MACOSX 子文件夹中的这些文件时,我无法探索他的差异。 我能做什么?

© www.soinside.com 2019 - 2024. All rights reserved.