我是窗口用户,我的应用程序接受上传zip文件。
我意识到,当用户使用Mac OSX中的内置zip压缩器压缩文件时,它会在提取的zip中创建一个名为“ __MACOSX”的额外文件夹。
我需要在我的应用程序中处理此文件夹(__MACOSX)。我只想知道__MACOSX隐藏目录中的内容。是空的吗?还是包含一些文件?并且如果它包含文件,那么它包含多少个文件?如果有文件-文件数量是否固定?那里有什么文件(空/非空等)。需要完整的信息。
在Mac OS中检查很简单,但是我没有Mac,我无法弄清楚此文件夹中的内容。我找不到这个答案。
答案 0 :(得分:1)
我压缩了包含以下内容的文件夹“ Pack”:
“ __ MACOSX”里面是什么:
因此,“ __ 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文件的人都是这种情况。