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