Почему при извлечении zip-файла я получаю два файла с одинаковым именем по одному пути?


11

Я извлекаю zip (самораспаковывающийся, но это, вероятно, не имеет значения), и для нескольких файлов я получаю диалоговое окно с вопросом, хочу ли я заменить файл, который уже был извлечен, файлом, который вот-вот быть извлеченным. На первый взгляд, я не понимал, как zip может содержать один и тот же файл в одном и том же месте более одного раза. Затем я перешел к рассматриваемому файлу с помощью 7zip (или любого другого инструмента) и нашел это:

enter image description here

Разница в номере блока. Что на самом деле здесь происходит?

Ответы:


8

Да, формат файла ZIP позволяет использовать несколько файлов с одинаковым именем. Файлы в zip-архиве на самом деле не находятся в каталогах, а просто имеют длинное имя, включающее путь. И файлы добавляются в ZIP, эффективно объединяя их от начала до конца. Единственное место, где синонимы вызывают проблемы в формате ZIP, - это каталог, где предположительно более поздний файл заменяет предыдущий. Но когда извлекается весь ZIP-файл (по сравнению с извлечением отдельных файлов), общий подход состоит в том, чтобы игнорировать каталог и просто извлекать файлы в порядке их появления в ZIP-файле.

Показанное изображение, конечно, содержит содержимое файла ZIP, а не каталог Windows.


4

Да. ZIP-файлы могут содержать один и тот же файл дважды. Это можно сделать с помощью функции «Добавить в архив» вашего zip-инструмента. По умолчанию более поздний файл переписывает любой прежний файл (-ы) при извлечении, поскольку это обычно - желаемое поведение.

Кроме того, файлы, которые различаются только в зависимости от имени файла / пути, считаются идентичными при извлечении в файловую систему без учета регистра (Windows или Mac OS.)


1

Похоже, вы используете Windows, в которой два файла с именами, отличающимися в каждом конкретном случае, совпадают с одним и тем же именем файла.

Возможно, ваш архив был создан в чувствительной к регистру файловой системе (например, в большинстве Linux), и два файла имели разные регистры (например, ENTRIES, Entries, entry).

Если вы посмотрите на вывод, файлы имеют одинаковый размер, одинаковую дату, одинаковый CRC, поэтому эти файлы идентичны, вы можете смело перезаписывать один другим. Может случиться так, что некоторые из них скопировали его в другой случай в качестве локальной временной резервной копии при работе с этими файлами. Номер блока заключается в том, что они хранятся в разных местах в zip-файле, что должно быть очевидным.


0

Тот же файл, то же расширение (или в этом случае без расширения). Как было сказано выше, это может быть вызвано ручным добавлением нескольких файлов в zip-файл, поскольку внутренняя структура zip-файла на самом деле не является папкой. Это также может быть вызвано тем, что zip-файл создается в системе, чувствительной к регистру, такой как Linux, и открывается в файловой системе, в которой не учитывается регистр, такой как Windows.

Обратите внимание, что в Windows, если вы перетаскиваете файлы для извлечения файлов, подобное столкновение фактически будет отображаться для блокировки графического интерфейса. Вам не нужно прибегать к уничтожению задачи и перезапуску; это известная ошибка в 7-Zip, и вы можете использовать клавиатуру для навигации по опциям (например, «Заменить все»), даже если мышь заблокирована - & gt; http://sourceforge.net/p/sevenzip/bugs/1509/


-1

Вы не можете иметь два одинаковых имени файла в одном и том же пути. Вы проверили, скрывает ли ваша система расширения? Это может быть возможным различием между ними. Может быть, один файл резервной копии.


Тот же файл (с расширением, которое оказывается пустым) по тому же пути. Пожалуйста, смотрите скриншот flickr.com/photos/46007162@N03/5278220416 - он показывает тот же файл, но как два разных блока. Я не уверен, что это значит.
Howiecamp

Как указано в другом месте, zip-архив МОЖЕТ содержать один и тот же файл дважды.
Daniel R Hicks
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.