добавлять файлы в архив без чтения / перезаписи всего архива - PullRequest
5 голосов
/ 08 июня 2010

У меня есть много файлов, которые я хочу сохранить в одном архивном файле. Мой первый подход состоял в том, чтобы хранить файлы в сжатом архиве. Проблема в том, что мне нужно переписать весь архив, если добавлен один файл. Я мог бы избавиться от сжатия gzip, но добавление файла все равно стоило бы.

Какой другой формат архива вы бы предложили, чтобы можно было быстро добавлять операции?

Ответы [ 2 ]

2 голосов
/ 08 июня 2010

Форматы ZIP и TAR (и старый формат AR) позволяют добавлять файлы без полной перезаписи. Тем не менее:

  • Классы архива Java НЕ поддерживают этот режим работы.
  • Добавление файла может привести к нескольким копиям файла в архиве, если вы добавите существующий файл.
  • Форматы ZIP и AR имеют каталог, который необходимо переписать после операции добавления файла. Стандартные утилиты принимают меры предосторожности при переписывании каталога, но теоретически возможно, что в случае сбоя добавления можно получить архив с отсутствующим или поврежденным каталогом.
2 голосов
/ 08 июня 2010

Формат файла ZIP был разработан, чтобы разрешать добавления без полной перезаписи, и вездесущ, даже в Unix.

...