helpf.pro
Регистрация
 0 
Распечатать

ZIP-архив Создание

Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий:
* Создать архив с необходимыми параметрами, в который будут помещаться файлы.
* Поместить в архив необходимые файлы.
* Записать архив.

Создание объекта ЗаписьZIPФайла можно осуществить двумя путями - создать инициализированный объект или создав неинициализированный объект вызвать у него метод Открыть. В обоих случаях состав параметров является одинаковым. В самом простом случае требуется указать только имя файла, куда будет записан архив.

Для создания нового архива требуется указать:
* Имя файла, куда будет записан архив. Этот параметр является обязательным. Если такой файл уже существует на диске, он будет перезаписан!Пароль доступа к архиву. Если этот параметр пропущен или равен пустой строке, то шифрование производится не будет!
* Комментарий к архиву.
* Метод сжатия файлов в архиве. На выбор предоставляется возможность скопировать файлы в архив без сжатия или сжать их. По умолчанию файлы сжимаются.
* Уровень сжатия файлов в архиве. Можно выбирать между минимальным, оптимальным и максимальным сжатием. По умолчанию используется оптимальное сжатие
* Метод шифрования. Можно защитить архив методом шифрования ZIP 2.0, совместимым с большинством программ, или с помощью шифрования на основе новейшего стандарта AES с различной длиной ключа (128, 192 и 256 бит). Однако следует помнить, что данный метод может быть не совместим с некоторыми программами архивирования, например WinRAR.

После создания объекта необходимо добавить в него необходимые файлы, воспользовавшись методом Добавить. Он принимает на вход 3 параметра:
1. Полное имя файла или маску.
2. Режим сохранения путей к файлу. Можно сохранять полные пути, не сохранять пути совсем или сохранять пути относительно каталога. Режим обработки подкаталогов. Можно обрабатывать подкаталоги рекурсивно или не обрабатывать их. Параметр имеет смысл, если в качестве имени указана маска.

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

Пример:
Код 1C v 8.х
 Сейчас = ТекущаяДата();

// Создадим объект записи ZIP-архива
ЗаписьZIP = Новый ЗаписьZipФайла(ИмяАрхивногоФайла,
ПарольАрхивногоФайла,
"" + МетодСжатия + Символы.ПС + УровеньСжатия + Символы.ПС + МетодШифрования,
МетодСжатия,
УровеньСжатия,
МетодШифрования);

// Добавим необходимые файлы в архив
ЗаписьZIP.Добавить("c:\MyFiles\File1.xml", РежимСохраненияПутейZIP.НеСохранятьПути);
ЗаписьZIP.Добавить("c:\MyFiles\MoreFiles\*.xml", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.НеОбрабатывать);

// Запишем архив на диск
ЗаписьZIP.Записать();

// Сообщим время, которое потребовалось для работы.
Сообщить("Упаковка заняла " + ТекущаяДата() - Сейчас) + " секунд(ы)");


Особенности упаковки файлов по маске

Остановимся подробнее на особенностях упаковки файлов по маске.
Предположим, что у нас есть следующий файлы, которые нам необходимо поместить в архив:
c:\ZipTest\11.xls
c:\ZipTest\12.xls
c:\ZipTest\13.xls
c:\ZipTest\MoreFiles\14.xls
c:\ZipTest\MoreFiles\15.xls
c:\ZipTest\MoreFiles\16.xls

Код 1C v 8.х
 // Добавим необходимые файлы в архив
ЗаписьZIP.Добавить("c:\ZipTest\11.xls", РежимСохраненияПутейZIP.СохранятьПолныеПути);
ЗаписьZIP.Добавить("c:\ZipTest\12.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
ЗаписьZIP.Добавить("c:\ZipTest\13.xls", РежимСохраненияПутейZIP.НеСохранятьПути);

В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\12.xls
\13.xls

Код 1C v 8.х
 // Добавим необходимые файлы в архив
ЗаписьZIP.Добавить("c:\ZipTest\*.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.НеОбрабатывать);

В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\ZipTest\12.xls
\ZipTest\13.xls

Код 1C v 8.х
 // Добавим необходимые файлы в архив
ЗаписьZIP.Добавить("c:\ZipTest\*.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);

В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\ZipTest\12.xls
\ZipTest\13.xls
\ZipTest\MoreFiles\14.xls
\ZipTest\MoreFiles\15.xls
\ZipTest\MoreFiles\16.xls
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 13562
 0 
Распечатать
Возможно, вас также заинтересует
Excel файл как Внешний источник данных 4
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . ...
Быстрая выгрузка отчетов в Excel, наложение Фильта и отображение ярлыка 0
Вместо Таб.Показать() используем глобальную функцию - и отчет показывается сразу в Excel в удобоваримом виде - с форматированием колонок по ширине, автофильтром и ярлычками листов Процедура...
Вставить формулу, функцию в ячейку Excel 0
Ячейка = Лист.Cells(1,8); Ячейка.Formula=" =SUM(R11C:R C)" ; Процедура Сформировать() Перем Кат,Шаб; Ехсел=СоздатьОбъект(" Excel.Application" ); Книга=Ехсел.Workbooks; Если ФС.ВыбратьФайл(0,Кат,Шаб," Выбери файл Еxcel" ,," *.xls" ,)=1 Тогда
Выбрать Остатки и Обороты по указанным счетам, отбор по субконто и выгрузка результата в EXCEL 0
Запрос=Новый Запрос; Запрос.Текст=" |ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Счет, | ХозрасчетныйОстаткиИОбороты.Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2, | ХозрасчетныйОстаткиИОбороты.Субконто3, ...
Выгрузка в PDF из 1С (Средствами OpenOffice) 0
Возникла задача отправлять счета почтой. PDFcreator не подошел поскольку не удалось вместить счет на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашел быстро, а вот как уместить счет на одну страницу...
Посмотреть все результаты поиска похожих
Комментарии
sergiosinicin
05.01.2012 12:16Комментарий: 2
sergiosinicin
Пропустили скобку в первом примере :
Сообщить("Упаковка заняла " + (ТекущаяДата() - Сейчас) + " секунд(ы)");
Voittamaton
05.10.2011 08:24Комментарий: 1
Voittamaton
Код 1C v 8.х
 Сообщить("Упаковка заняла " + ТекущаяДата() - Сейчас) + " секунд(ы)");   

В этой строке не хватает открывающей скобки. Но это ерунда ) Статья помогла )
Очень приятно, что архивировать можно даже запущенную базу.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.