Что находится внутри скрытой папки __MACOSX в zip-файлах, созданных в Mac OS

Я пользователь Windows, и мое приложение принимает zip-файлы.

Я понял, что когда пользователь сжимает файлы с помощью встроенного в Mac OSX компрессора zip, в извлеченном zip-архиве создается дополнительная папка с названием «__MACOSX».

Мне нужно обработать эту папку (__ MACOSX) в моем приложении. Я просто хочу знать, что находится в скрытом каталоге __MACOSX. Он пустой или в нем есть какие-то файлы? А если он содержит файлы, то сколько файлов в нем? Если есть файлы, фиксировано ли количество файлов? Какие там файлы (пустые / непустые и т. д.)? Нужна полная информация.

Это просто проверить в Mac OS, но у меня нет Mac, поэтому я не могу понять, что находится в этой папке. Я искал, но не нашел ответа.

Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
1 979
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я заархивировал папку "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» и не удалить ее, а не обрабатывать?

Спасибо вам. Да, я его удаляю и не обрабатываю. :)

VSS 17.12.2018 12:59

Чтобы добавить к ответу @Yoric, скрытые файлы написаны в формате ЯблокоДвойной, который изначально использовался для хранения дополнительных метаданных в системах 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-файл.

Другие вопросы по теме