OSX Lion libz разархивирование файловой структуры изменения - PullRequest
0 голосов
/ 17 августа 2011

Обычно, когда я распаковываю файл, который был сохранен в OSX Lion, я получаю имя файла zip в виде папки с файлами внутри программы ...

Так что при распаковке zipfile.zip я получаю папку'zipfile' с 3 файлами внутри него.

1. zipfile.zip
2. zipfile
   ->file1
   ->file2
   ->file3

НО

Если он был создан / использован в OSX Leopard, я получаю 3 файла разархивированными, но не в папке 'zipfile', скорее в той же директории, что и zip-файл.

Таким образом, структура родительской папки «следует» выглядит следующим образом:

1. zipfile.zip
2. file1
3. file2
4. file3

В OSX Lion, если я копирую (или создаю) свойfile.zip, и разархивируйте его в моем проекте xcode, используя ZipArchive.mm

, позвонив по номеру

-(BOOL) UnzipOpenFile:(NSString*) zipFile

и проверьте в журнале:

NSLog([NSString stringWithFormat:@"%d entries in the zip file",globalInfo.number_entry] );

Я получаю '10 записей в zip-файле. '

Если я получу то же самое в OSX Leopard, который получу, 6 записей в zip-файле.

Я не совсем уверен, что' globalInfo.number_entry 'должен означать атрибуты файла?

Почему существует разница в способе обработки zip-файла в OSX Lion?По сути, это означает, что мне нужно скопировать мой проект на компьютер Snow Leopard, чтобы собрать и использовать zipfile.zip, который никогда не был в операционной системе OSX Lion, который каким-то образом изменил атрибуты, вызывая процесс разархивирования визменить, что приведет к срыву моего проекта.

Кто-нибудь знает, что я здесь получаю?Такое небольшое изменение и все же огромная проблема.

Из Lion, когда я вывожу структуру zip-файла, у меня есть:

filename: zipfile/
filename: zipfile/.DS_Store
filename: __MACOSX/
filename: __MACOSX/zipfile/
filename: __MACOSX/zipfile/._.DS_Store
filename: zipfile/file1.db
filename: zipfile/file2.db
filename: __MACOSX/zipfile/._file2.db
filename: zipfile/suburbs.db
filename: __MACOSX/zipfile/._file3.db

И из OSX Leopard

file1.db
file2.db
__MACOSX/
__MACOSX/._file2.db
file3.db
__MACOSX/._file3.db

1 Ответ

1 голос
/ 17 августа 2011

Большая картина, я думаю, вы получили здесь ДВА различных файла .zip, а не один, и они были созданы по-разному.

В одном из них вы выбрали три файла, щелкнули правой кнопкой мыши и выбрали «Сжать 3 элемента».

С другой стороны, вы выбрали папку и выбрали «Сжать (имя папки)»

Полный путь к каждой записи хранится в каталоге zip-файла, и он не будет волшебным образом исчезать.

Если вы действительно начинаете с одного и того же zip-файла на обеих машинах, то я бы взял копию реального инструмента для распаковки (возможно, он уже есть в / usr / bin /) и использовал бы / usr / bin / unzip -l zip file.zip 'команда для просмотра содержимого архива без его расширения.

...