Распаковать zip-файл: ошибка «Ошибка в конце-центральной директории»

Я продолжаю получать эту ошибку каждый раз, когда я пытаюсь разархивировать мой файл:

Archive: Server.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of Server.zip or Server.zip.zip, and cannot find Server.zip.ZIP, period.

Я закрепил его с помощью 7zip, но он все еще не работает. Я прочитал что-то о MD5, мне нужно это, чтобы распаковать?

0
задан 19 November 2017 в 17:38

2 ответа

Я тестировал с 7z, zip и unzip намеренно смешивая программы, но я не смог воспроизвести проблему. Однако это может быть очень специфичным для сжатых данных. Поскольку 7z использует формат 7z по умолчанию, а расширения имен файлов не имеют значения, я сначала подумал, что он создаст файл формата 7z с именем zip, но, оказывается, он не является недружественным пользователем: 7z a 1.zip 2 создает 1.zip, даже без опции -t zip, которая определяет формат. 7z a 1 2 однако создает 1.7z, а 7z a -t zip 1 2 создает 1.zip, как ожидалось.

В общем, это хорошая идея:

использовать ту же самую программу для упаковки и распаковать архив: 7z a Server.zip file1 file2 dir1/ # add files 7z x Server.zip # extract with full paths 7z e Server.zip # extract IGNORING paths zip Server.zip file1 file2 dir1/ # add files unzip Server.zip # extract with full paths использовать криптографический хэш для проверки правильности передачи архива: на вашем сервере сохраните хэш-сумму с помощью md5sum, sha1sum, sha224sum, sha256sum, sha384sum или sha512sum 1 (все следуют одному и тому же синтаксису), например sha1sum Server.zip otherfile.zip > sha1hashsums Передавать как zip-файл (ы), так и файл sha1hashsums. Проверяйте zip-файл (ы) с помощью, например, $ sha1sum -c sha1hashsums Server.zip: FAILED otherfile.zip: OK

1 Самое важное различие между ними - размер хеша, более длинный хеш более безопасен. Формат 7z создает 128-битный хеш, SHA1 - 160-битный, остальные несут размер хэш-суммы в своем имени, например. sha512sum для 512-битного хэша. Я оставлю все остальное в Википедии, см. Ссылки.

0
ответ дан 18 July 2018 в 03:02

Я тестировал с 7z, zip и unzip намеренно смешивая программы, но я не смог воспроизвести проблему. Однако это может быть очень специфичным для сжатых данных. Поскольку 7z использует формат 7z по умолчанию, а расширения имен файлов не имеют значения, я сначала подумал, что он создаст файл формата 7z с именем zip, но, оказывается, он не является недружественным пользователем: 7z a 1.zip 2 создает 1.zip, даже без опции -t zip, которая определяет формат. 7z a 1 2 однако создает 1.7z, а 7z a -t zip 1 2 создает 1.zip, как ожидалось.

В общем, это хорошая идея:

использовать ту же самую программу для упаковки и распаковать архив: 7z a Server.zip file1 file2 dir1/ # add files 7z x Server.zip # extract with full paths 7z e Server.zip # extract IGNORING paths zip Server.zip file1 file2 dir1/ # add files unzip Server.zip # extract with full paths использовать криптографический хэш для проверки правильности передачи архива: на вашем сервере сохраните хэш-сумму с помощью md5sum, sha1sum, sha224sum, sha256sum, sha384sum или sha512sum 1 (все следуют одному и тому же синтаксису), например sha1sum Server.zip otherfile.zip > sha1hashsums Передавать как zip-файл (ы), так и файл sha1hashsums. Проверяйте zip-файл (ы) с помощью, например, $ sha1sum -c sha1hashsums Server.zip: FAILED otherfile.zip: OK

1 Самое важное различие между ними - размер хеша, более длинный хеш более безопасен. Формат 7z создает 128-битный хеш, SHA1 - 160-битный, остальные несут размер хэш-суммы в своем имени, например. sha512sum для 512-битного хэша. Я оставлю все остальное в Википедии, см. Ссылки.

0
ответ дан 24 July 2018 в 17:43

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

Похожие вопросы: