我是 Windows 用户,我的应用程序接受 zip 文件。
我意识到,当用户使用 Mac OSX 中内置的 zip 压缩器压缩文件时,会在提取的 zip 中创建一个名为“__MACOSX”的额外文件夹。
我需要在我的应用程序中处理这个文件夹(__MACOSX)。我只想知道隐藏的 __MACOSX 目录中有什么。它是空的还是包含一些文件?如果它包含文件,那么它包含多少个文件?如果有文件,文件数量是固定的吗?有哪些类型的文件(空/非空等)?需要完整信息。
检查 Mac 操作系统很简单,但我没有 Mac,所以我无法弄清楚这个文件夹中有什么。我搜索过但找不到答案。
只是为了添加@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 文件的人来说是这样。
我压缩了一个包含以下内容的文件夹“Pack”:
“__MACOSX”里面有什么:
因此,“__MACOSX”似乎包含被压缩的文件夹结构的复制,其中隐藏文件以点开头,而不是真实文件。但是,并非所有文件都在那里,因此可能很难预测有多少文件(在我的测试中,真实文件
Sound.m4a
没有等效的.Sound.m4a
。)
那些“隐藏”文件不是空的,它们是保存元数据的二进制文件。
为什么不忽略这个“__MACOSX”文件夹,并将其删除,而不是处理它?
我得到了一个压缩文件夹,其中应包含相应文件夹的所有文件,但可能包含已更改的内容。压缩文件夹并不包含所有预期的文件,其他文件包含在 __MACOSX 子文件夹中,具有相同的名称,但以“._”开头。 当我删除 __MACOSX 子文件夹中的这些文件时,我无法探索他的差异。 我能做什么?