Hobo

|
Posted: Sat May 06, 2023 14:25 Post subject: |
|
|
Avada wrote: | Hobo
Не поясните подробнее, что же такого не происходящего сейчас может произойти в один прекрасный день и что для предотвращения этого дня предлагается предпринять? |
Допустим, достал я из архива какой-нить старый ZIP, обновил в нём пару файлов, положил его обратно и забыл на некоторое время. А потом оказалось, что обновился он некорректно.
Тут, конечно, дело привычки. Я лет двадцать пользуюсь TC для работы с ZIP-ами. И всё это время был InfoZIP. И тут -- БАЦ! Ни с того, ни с сего -- другая библиотека. Вот и мандражнул децл и стал проверять. Да, с новой библиотекой даже на глаз, даже на HDD видна, хоть и небольшая, но разница в скорости. Но это как с методами сжатия по умолчанию и 9. Разница есть, но смысла особого от этого нет. А вот смысл в сохранности данных есть.
Оставаться на 10.* предотвратит. Но всё равно когда-то придётся обновляться.
Quote: | И вас, похоже, не озаботил (даже чисто теоретически) обратный вопрос — поддержка вновь созданных архивов, к примеру, старыми версиями TC... |
Я, наверно, неточно написал ранее. Было сделано два архива (10 и 11). Оба были распакованы обеими версиями TC и unzip-ом, который Info-ZIP. Результат распаковки сравнивался с оригиналом. Всё, казалось бы гут, но... Вот вам одна непоняточка:
В моём случае из ~400 .html libdeflate признал двоичными ~250, Info-ZIP не признал ни одного. Напомню, что все .html -- в unix-формате новой строки. Дело, естественно происходит в мирке, где CRLF.
У unzip-а есть опция -a:
Quote: | convert text files. Ordinarily all files are extracted exactly as they are stored (as ‘‘binary’’ files). The −a option causes files identified by zip as text files (those with the ‘t’ label in zipinfo listings, rather than ‘b’) to be automatically extracted as such, converting line endings, end-of-file characters and the character set itself as necessary. (For example, Unix files use line feeds (LFs) for end-of-line (EOL) and have no end-of-file (EOF) marker; Macintoshes use carriage returns (CRs) for EOLs; and most PC operating systems use CR+LF for EOLs and control-Z for EOF. |
Т.е., при распаковке файлы, помеченные в архиве как текстовые, распакуются с конвертацией, а остальные -- без.
Есть же в настройках FTP, какие файлы передавать как текстовые, а какие нет.
Вот.
Как на этот флаг смотрит(ел) TC -- неизвестно. Конечно, если архив не будет покидать мира CRLF или распаковщику будет плевать на флаг "t", то, скорее всего, ничего не произойдёт.
Quote: | (Как по мне, так все эти опасения примерно в одну цену и никакими фактами на данный момент не подтверждаются.) |
Я не говорил, что "всё пропало" и, конечно, посмотрел что это за libdeflate. Да, это достаточно проверенный проект, всё с ним хорошо.
"Но осадочек остался..." |
|