При создании архивов столкнулся со странным поведением архиватора 7-Zip (утилита командной строки "c:/Program Files/7-Zip/7z.exe"). Почему-то при старте архивирования запускалась очень долгая процедура сканирования диска (scanning), которая занимала от 5 минут до часа - в зависимости от того, насколько заполнен диск, где находилась архивируемая папка. При этом в архив зачем-то попадали папки Documents and Settings \ имя_пользователя \ Local Settings \ Temp \ _tc и другие подобные пустые каталоги.
Архивирование при этом запускалось простой командой:
"c:/Program Files/7-Zip/7z.exe" a -r имя_архива.ZIP c:\архивируемая_папка
Казалось бы, ничего особенного, должен создаться архив имя_архива.ZIP (команда a, Add files to archive), при этом в архив должна попасть архивируемая_папка и все её подкаталоги (как мне казалось, это должна задавать опция -r, Recurse subdirectories).
Но оказалось, что назначение опции -r (Recurse subdirectories) несколько необычное. Она означает вовсе не "упаковывать все файлы и папки, которые находятся по указанному пути, просматривая все его подкаталоги", а "просмотреть все соседние подкаталоги диска на предмет поиска указываемой архивируемой папки" (в нашем случае это каталог архивируемая_папка). Так что если указать опцию -r, то как раз получится долгое сканирование всех каталогов в поиске архивируемой папки (или файла).
Чтобы избавиться от неприятного эффекта сканирования, достаточно не указывать опцию -r:
"c:/Program Files/7-Zip/7z.exe" a имя_архива.ZIP c:\архивируемая_папка
При этом нормально создастся архив имя_архива.ZIP, и в нем будет находиться папка архивируемая_папка со всеми файлами и подкаталогами. При этом архивирование запустится быстро, и предварительного сканирования не будет.
|