5

Есть ли способ распаковать zip-файл в каталог, но сделать это только для файлов обновлений (я имею в виду сжатые файлы внутри zip-файла)? У меня там огромный каталог файлов, и только около 20% отличаются.

Желательно использовать командную строку, но это необязательно. Я использую Windows XP.

Благодарю.

3 ответа3

1

Вот идея для начала, что кто-то еще должен будет закончить:

  1. Найдите почтовую программу, в которой перечислены файлы в сжатом архивном виде.
  2. Иметь этот список всех файлов и отметку времени
  3. Используйте язык сценариев (python, batch, что угодно), чтобы сравнить время изменения этих файлов с файлами в каталоге
  4. Пусть скриптовый язык сгенерирует аргументы для добавления этих файлов в архив

В качестве альтернативы, сломайте вашу архивную папку.

1

С помощью дополнения командной строки winzip вы можете использовать опцию -n :

-n

Распакуйте только новые файлы. Эта опция обновляет существующие файлы, если архивированный файл более новый, и создает новые, если они еще не существуют.

wzunzip -n "c:\my documents\spring2007.zip" c:\semesters\spring05  

В этом примере из c:\my documents\spring2007.zip извлекаются ТОЛЬКО те файлы, которые новее, чем файлы, существующие в настоящее время в c:\semesters\spring05 ИЛИ, которые еще не существуют в папке c:\semesters\spring05 ,

Возможно, вы захотите объединить его с опцией -o - «Перезаписать существующие файлы без запроса (автоматически отвечайте" Да "на каждый запрос о перезаписи)».

0

Я опаздываю на 4 года, но эй - лучше поздно, чем никогда.

Вот проект для распаковки только измененных файлов:https://code.google.com/p/unzip-skip-unchanged-files/

Из TFA:«Инструмент для разархивирования, написанный на C #, который проверяет MD5-хэш перед разархивированием каждого файла. --- Если хэш-файл соответствует предыдущей версии, мы пропускаем извлечение этого файла. --- Хэши хранятся в потоках альтернативных файлов NTFS ( в Linux нужно использовать API xattr, но здесь это не реализовано)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .