Упаковать файлы в архив можно несколькими способами в зависимости от того, какой результат необходим.
Упаковать некоторые файлы в папку ZIP с сохранением структуры каталогов.
Предположим, что у нас есть следующие файлы:
с:\ZIP\file1.xls
с:\ZIP\Test\file3.xls
Добавить их в архив можно, вызывая для каждого метод Добавить() с указанием требуемых параметров (листинг 6.126).
Листинг 6.126. Пример добавления файлов в ZIP-архив
Архив.Добавить("c:\ZIP\file1.xls", РежимСохраненияПутейZIP.СохранятьПолныеПути);
Архив.Добавить("c:\ZIP\Test\file3.xls", РежимСохраненияПутейZIP.СохранятьПолныеПути );
В архив файлы попадут следующим образом:
\ZIP\file1.xls
\ZIP\Test\file3.xls
Упаковать все файлы в папку ZIP без сохранения структуры каталогов.
Предположим, что у нас есть следующие файлы:
с:\ZIP\file1.xls
с:\ZIP\Test\file3.xls
Для добавления всех файлов передадим в метод Добавить() маску для поиска всех файлов (*.*), укажем, что нет необходимости сохранять пути для файлов и что требуется производить поиск в подпапках (листинг 6.127).
Листинг 6.127. Пример добавления файлов в ZIP-архив
Архив.Добавить("c:\ZIP\*.*", РежимСохраненияПутейZIP.НеСохранятьПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
В архив файлы попадут следующим образом:
\file1.xls
\file3.xls
При этом следует помнить, что если в разных папках будут файлы с одинаковыми именами, то операция выполнена не будет – из-за того что фактически мы попытаемся добавить в архив файлы с одинаковыми именами.
Упаковать все файлы в папку ZIP с сохранением относительных путей.
Предположим, что у нас есть следующие файлы:
с:\ZIP\file1.xls
с:\ZIP\Test\file3.xls
Для добавления всех файлов передадим в метод Добавить() маску для поиска всех файлов (*.*), укажем, что необходимо сохранять относительные пути для файлов и что требуется производить поиск в подпапках. При этом следует помнить, что относительные пути будут начинаться от папки, в которой начался поиск (листинг 6.128).
Листинг 6.128. Пример добавления файлов в ZIP-архив
Архив.Добавить("c:\ZIP\*.*", РежимСохраненияПутейZIP.СохранятьОтносительныеПути,
РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
В архив файлы попадут следующим образом:
\file1.xls
\Test\file3.xls