Почему делают с 7 zip / WinRAR разархивировали файлы, чтобы “работать временно” прежде, чем переместить их к их месту назначения?

Почему делают с 7 zip / WinRAR разархивировали файлы, чтобы "работать временно" прежде, чем переместить их к их месту назначения?

Я не вижу преимущества против просто прямой разархивации месту назначения. Это является действительно раздражающим, специально для больших файлов (как это теперь!).


Править:

Объясните, почему они не сделаны на месте.

50
задан 17.05.2017, 06:42

2 ответа

Не будучи разработчиком 7-zip или WinRAR, мои комментарии здесь чисто спекуляции. Тем не менее, используя временное пространство, чтобы распаковать до тех пор, пока все не будет полностью помочь проверить, что все файлы не повреждены (т.е., что zip не поврежден).

Нет ничего хуже, чем распаковать большой сжатый файл, начав работать с файлами в начале архива; только узнать, что что-то повреждено в конце архива. В этот момент вы теряете доверие ко всему.

Мой последний комментарий - я не помню, чтобы видел такое поведение от 7-zip. Когда я щелкаю правой кнопкой мыши и говорю "извлечь" здесь, я обычно имею доступ к файлам по мере их распаковки. Вы дважды проверяли, не является ли это где-нибудь настройкой?

.
-2
ответ дан 07.12.2019, 08:29

Это делается для того, чтобы требования к памяти для распаковки были минимальными.

Если бы они не использовали файловую систему, распаковка произошла бы в памяти. В условиях малой памяти или для больших сжатых файлов это рано или поздно истощило бы доступную память и запустило бы процесс подкачки памяти.

Подкачка при таких условиях была бы намного медленнее, чем просто использование файловой системы, потому что файл все еще распаковывается (и файлы страниц продолжают добавляться), а также потому, что по мере распаковки файл проверяется на наличие ошибок и, как таковой, выполняется много операций чтения/записи. Худшее, что может случиться с файлом страниц.

EDIT: Что касается использования временного каталога, так это следовать многим рекомендациям операционной системы. Если распаковка не удаётся, то нет никакой гарантии, что программа, выполняющая операцию, очистит после себя. Например, она могла сломаться. Таким образом, в целевом каталоге не останется ни одного оставшегося файла, и операционная система распорядится временным файлом, когда посчитает нужным.

1
ответ дан 07.12.2019, 08:29

Теги

Похожие вопросы