Записи ZIP хранят полный путь к записи, потому что (я уверен в следующей части) архив ZIP не организован как каталоги. Метаданные содержат информацию о том, как файлы должны храниться (внутри каталогов).
Если я создаю ZIP файл в Windows, когда я разархивирую данные в другой ОС, например, Mac OS X, структура файла остается такой же, какой была в Windows. Это потому, что распаковщик предназначен для этого или isit, потому что файловые разделители внутри ZIP являются стандартными?
Я спрашиваю об этом, потому что я пытаюсь найти запись внутри ZIP файла, используя имя ZIP файла. Но какой разделитель файлов я должен использовать, чтобы он работал в системах, отличных от Windows?
Я использую Java, и метод: .getName()
ZipEntry
дает мне путь, используя разделитель файлов Windows \
. Было бы достаточно, если бы я использовал разделитель java File.separator
чтобы он работал на другой ОС? Или я должен попытаться найти свой файл с каждым возможным разделителем?
Упоминание почетного правильного ответа
Ответ, данный @Eren Yilmaz, является правильным, описывая функциональность многих инструментов (или даже того, который вы можете написать самостоятельно). Но, учитывая, что стандарт .zip четко документирует, каким он должен быть, правильный ответ пришлось обновить