У меня есть проблема, и я не уверен, что это такое, но надеюсь, что кто-нибудь поможет мне разобраться с этим, потому что это поставило меня в тупик.

Предыстория:

Я написал приложение для Java (Android), которое распаковывает некоторые zip-файлы, загруженные из сети. До сих пор это работало отлично. Затем на этой неделе архивы, которые я создаю на своем компьютере (в Ubuntu 12.04), распаковывают на телефоне Android в плоскую иерархию вместо сохранения папок. Я создаю архивы тем же способом (щелчок правой кнопкой мыши на папке> сжимать), но, хотя мои старые архивы (созданные в 10.04) все еще распаковываются, как и ожидалось, новые не делают. В Ubuntu новые zip-файлы выглядят так же, как и старые. При распаковке на моем компьютере папки в этих новых архивах восстанавливаются так же, как и старые ... это приложение для Android, которое прекрасно извлекает старые и новые плоские. Однако я действительно хочу знать, в чем разница между архивами.

Вопрос:

Как можно определить, почему один zip-архив будет извлечен с сохранением иерархии папок, когда идентичный (для всех появлений в Ubuntu 12.04) извлечен без иерархии? Существуют ли различные способы, которыми файл .zip может "иметь" папки, но Ubuntu не различает их?

1 ответ1

1

Я предлагаю установить пакет unzip , а затем запустить unzip -l <archive_name> чтобы проверить истинную структуру файла zip.

Нет разных способов хранения папок в zip-файле. Папки есть или нет. Однако после разархивирования существуют разные способы обработки папок в zip-файле (если есть). Например, в зависимости от того, что пользователь указывает на это, распаковщик может игнорировать все папки и просто извлекать файлы в один каталог (unzip -j сделает это). Или он может извлечь все файлы в каталог, который не существует в zip-архиве (unzip -d сделает это).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .