Я извлекал исходный код Free Pascal в пустой каталог, используя Midnight Commander (в Mac OS X, который различает AFAIK в нижнем и верхнем регистре), и меня спросили, хочу ли я заменить файл. Я не могу вспомнить, какой это был файл, поскольку я не обращал на это серьезного внимания, и я не знаю, было ли больше одного, поскольку я решил заменить все, но я помню, что размер файла замены был точно такого же размера, как и у оригинала. так что я не волновался. Но я просто не могу понять, как это вообще возможно, что второй файл с таким же именем и размещением был найден в том же ZIP-архиве.
2 ответа
Я считаю, что это вполне возможно в соответствии с форматом ZIP. Проблема довольно необычна, потому что большинство программ, которые создают файлы ZIP, предпочтут обновить уже существующий файл, а не создавать второй файл. Я сделаю это: возможно, формат файла ZIP отслеживает файлы, используя номер индекса, а не имена файлов для индексации? В любом случае, как вспоминает моя туманная память (когда я много лет назад играл с подростками), если я сделал ZIP-файл из двух файлов, TEXT1 и TEST2, а затем использовал шестнадцатеричный редактор, чтобы переименовать TEST2 в TEXT1, тогда Я хотел бы иметь ZIP-файл с двумя файлами с именем TEXT1. Это абсолютно не нарушение. Типичным поведением программного обеспечения является запрос о перезаписи существующего файла при извлечении более позднего файла.
Я также думаю, что смог создать ситуацию с некоторыми менее странными действиями, возможно, при работе с несколькими файловыми системами (например, HPFS). Использование файловой системы, которая поддерживает функции, для которых ZIP не был разработан, может быть особенно подвержено подобным вещам.
В Windows 95, я думаю, я мог бы заставить подобные вещи архивировать "C:\Program Files\Something.txt" и "C:\Progra ~ 1\SOMETH ~ 1".ТЕКСТ"
У меня нет ответа на вопрос, что именно вы сделали, чтобы создать такую вещь, но результаты не удивляют меня. Если это вызывает какие-либо серьезные проблемы, вы можете рассмотреть другой формат файла. .tar обычно считается довольно хорошим и сохраняет детали файловой системы (особенно в отношении вещей, подобных Unix).
Как выяснил Патрикс (это действительно должен быть ответ, а не редактирование вопроса, делающее вопрос нелепым), действительно есть 2 идентичных файла с одинаковым именем, написанных в разных случаях:
pse@Mithos:~/.tmp$ unzip -v fpc.zip | grep -i boyscout.inc
4747 Defl:N 1607 66% 10-13-14 10:25 8b6e16fd fpc/packages/libgbafpc/src/gba/BoyScout.inc
4747 Defl:N 1607 66% 01-04-15 02:01 8b6e16fd fpc/packages/libgbafpc/src/gba/boyscout.inc
и, как отметил Тецуджин, HFS (файловая система Mac OS X) не позволяет этого по умолчанию.