ЭлементZip
Стд::Архивация::ЭлементZip
Описание элемента в ZIP-файле.
Сравнение ссылочное
Иерархия типа
Базовые типы: Объект
См. также
Свойства
ВремяИзменения
ТолькоЧтение
ВремяИзменения: Момент
Момент изменения файла.
Примеры
метод ИзвлечьФайлыПоРасширениюИзАрхива(Архив: ФайлZip, РасширениеФайла: Строка, КаталогРаспаковки: Строка)
// Распаковка элементов архива с расширением РасширениеФайла, измененных за последние сутки,
// в домашний каталог КаталогРаспаковки и подкаталог РасширениеФайла,
// например, файлы с расширением "pdf", в каталог "КаталогРаспаковки/pdf"
для Элемент из Архив.Элементы()
если Элемент.Расширение == РасширениеФайла и Элемент.ВремяИзменения >= Момент.Сейчас() - 1д
Архив.Извлечь(Элемент, новый Файл(Файлы.ПолучитьДомашнийКаталогПользователя().Путь, [КаталогРаспаковки, РасширениеФайла]))
;
;
;
Имя
ТолькоЧтение
Имя: Строка
Имя элемента архива.
Если при создании архива не использовалась кодировка UTF-8
для имен элементов архива, то будет использована кодировка указанная при создании читателя архива, или Cp866
.
Примеры
метод ПолучитьИменаЭлементовАрхива(Архив: ФайлZip): Массив<Строка>
пер ИменаЭлементов: Массив<Строка> = Архив.Элементы().Преобразовать(Элемент -> Элемент.Имя)
возврат ИменаЭлементов
;
ИмяБезРасширения
ТолькоЧтение
ИмяБезРасширения: Строка
Имя элемента архива без расширения.
Если при создании архива не использовалась кодировка UTF-8
для имен элементов архива, то будет использована кодировка указанная при создании читателя архива, или Cp866
.
Примеры
метод ИзвлечьФайлСНовымРасширением(Архив: ФайлZip, ИмяФайла: Строка, КаталогРаспаковки: Строка)
// Поиск файла - точный путь к файлу в архиве неизвестен, но известно имя файла
пер Элементы = Архив.Найти(ИмяФайла)
// Извлечение найденных файлов в каталог КаталогРаспаковки с заменой расширения на "doc",
// например, файл test.bin будет извлечен как test.doc
пер Каталог = новый Файл(Файлы.ПолучитьДомашнийКаталогПользователя().Путь, [КаталогРаспаковки])
для Элемент из Элементы
если не Элемент.ЭтоКаталог()
Архив.Извлечь(Элемент, Каталог)
Файлы.Переименовать(новый Файл(Элемент.ПутьВАрхиве, Каталог), Элемент.ИмяБезРасширения + ".doc")
;
;
;
ПутьВАрхиве
ТолькоЧтение
ПутьВАрхиве: Строка
Путь к элементу в архиве.
Если при создании архива не использовалась кодировка UTF-8
для имен элементов архива, то будет использована кодировка указанная при создании читателя архива, или Cp866
.
Примеры
м етод ПолучитьПутиЭлементовАрхива(Архив: ФайлZip): Массив<Строка>
пер ПутиЭлементов: Массив<Строка> = Архив.Элементы().Преобразовать(Элемент -> Элемент.ПутьВАрхиве)
возврат ПутиЭлементов
;
метод ВычислитьРазмерСжатогоВАрхиве(Архив: ФайлZip, Каталог: Строка): РазмерБайтов
// Вычисление общего размера сжатых файлов в каталоге архива, например, "КаталогСФайламиДляСжатия"
пер ОбщийРазмерБайтов = 0б
для Элемент из Архив.Элементы()
если Элемент.ПутьВАрхиве.Содержит(Каталог, Истина)
ОбщийРазмерБайтов += Элемент.РазмерСжатого
;
;
возврат ОбщийРазмерБайтов
;
метод РаспаковатьАрхив(КаталогРаспаковки: Файл, ВходнойАрхив: Файл, Пароль: Строка)
// Создание потока чтения файла архива
исп АрхивПотокЧтения = ВходнойАрхив.ОткрытьПотокЧтения()
пер ЧтениеZip = новый ЧтениеZip(АрхивПотокЧтения, Пароль)
пока ЧтениеZip.Следующий()
// Получение элемента архива
пер ЭлементZip = ЧтениеZip.ПолучитьЭлемент()
если не ЭлементZip.ЭтоКаталог()
// Создание объекта файла, в который будет выполнена распаковка элемента архива.
// ПутьВАрхиве содержит полный путь со всеми каталогами и именем файла, все каталоги будут созданы,
// поэтому пропускаются элементы архива, которые являются каталогами
пер Файл = Файлы.Создать(новый Файл(КаталогРаспаковки.Путь, [ЭлементZip.ПутьВАрхиве]))
// Открытие потока записи, будет закрыт автоматически, так как объявлен через "исп"
исп ФайлПотокЗаписи = Файл.ОткрытьПотокЗаписи()
// Запись байтов элемента архива в поток записи целевого файла
ФайлПотокЗаписи.Записать(ЧтениеZip.ПолучитьПотокЭлемента().ПрочитатьКакБайты())
;
;
;
РазмерНесжатого
ТолькоЧтение
РазмерНесжатого: РазмерБайтов
Размер несжатого файла.
Примеры
метод ВычислитьРазмерНесжатогоВАрхиве(Архив: ФайлZip): РазмерБайтов
// Вычисление общего размера несжатых файлов в архиве
пер ОбщийРазмерБайтов = 0б
для Элемент из Архив.Элементы()
ОбщийРазмерБайтов += Элемент.РазмерНесжатого
;
возврат ОбщийРазмерБайтов
;
РазмерСжатого
ТолькоЧтение
РазмерСжатого: РазмерБайтов
Размер сжатого файла.
Примеры
метод ВычислитьРазмерСжатогоВАрхиве(Архив: ФайлZip, Каталог: Строка): РазмерБайтов
// Вычисление общего размера сжатых файлов в каталоге архива, например, "КаталогСФайламиДляСжатия"
пер ОбщийРазмерБайтов = 0б
для Элемент из Архив.Элементы()
если Элемент.ПутьВАрхиве.Содержит(Каталог,