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

时间:2018-12-17 10:54:11

标签: macos zip

我是窗口用户,我的应用程序接受上传zip文件。

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

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

在Mac OS中检查很简单,但是我没有Mac,我无法弄清楚此文件夹中的内容。我找不到这个答案。

2 个答案:

答案 0 :(得分:1)

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

  • Readme.txt
  • Image.jpg
  • Script.sh
  • Sound.m4a

“ __ MACOSX”里面是什么:

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

因此,“ __ MACOSX”似乎包含正在压缩的文件夹结构的复制,其中隐藏文件以点开头,而不是实际文件。但是,并非所有文件都在那里,因此可能很难预测有多少个文件(在我的测试中,真实文件Sound.m4a没有等效的.Sound.m4a。)

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

您为什么不忽略此“ __MACOSX”文件夹并删除它,而不是对其进行处理?

答案 1 :(得分:0)

只需添加到@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文件的人都是这种情况。