Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Cиcтeмa 
Компоненты - Zipper

Zipper
Краткое описание
   Компонент предназначен для работы с ZIP архивами.
Параметры
  • FileMask - Маска множественного поиска файлов, например: *.TXT (только для упаковки с использованием множественной маски поиска)
  • ZipFileName - Определяет имя файла архива
  • BasePath - Путь для распаковки или множественной упаковки
  • Password - Если указан пароль, то файлы в архиве будут шифроваться при упаковке или дешифровываться при распаковке
  • Method - "NoCompression" - сохранять в архиве без упаковки. "Fast" - быстрая упаковка при низком коэффициенте сжатия. "Normal" - оптимальное соотношение скорость/сжатие. "Max" - максимальный коэффициент сжатия при низкой скорости упаковки
  • UpdateMode - "Add&Replace" - если файла нет в архиве, то будет добавлен, иначе - заменён. "Freshen" - файл будет добавлен если только он уже есть в архиве и добавляемый файл новее архивного. "Update" - файл будет добавлен в архив даже если его там нет, если он там есть, то только если он новее архивного
  • IncludeSubfolders - Если True, поиск файлов будет производиться и в подкаталогах (только для упаковки с использованием множественной маски поиска)
  • ResetAttr - Если True, то атрибут "Archive", упаковываемого файла, будет сброшен после помещения в архив
  • CheckAttr - Если True, упаковываться будут только файлы у которых установлен атрибут "Archive" (только для упаковки с использованием множественной маски поиска)
  • SpanSize - -1 - без разбивки на части. 0 - автоматическая разбивка по заполнению (только для сменных носителей). N - разбика на части размером N байт (только не для сменных носителей)
  • Comment - Комментарий - если указан, то будет добавлен в архив
  • TestOnly - Если True, режим тестирования архива без распаковки
  • OverwriteExisting - Если True, при распаковке любые существующие файлы будут перезаписаны, иначе будут пропущены
  • SkipOlder - Если True, при распаковке более новые файлы не будут перезаписаны
  • UseFolders - Если True, при распаковке, файлы будут помещаться согласно хранящейся информации о подкаталогах
  • Progress - На событие onProgress выдаёт в поток: Files - текущее количество обработанных файлов; Bytes - текущее количество обработанных байт
  • Методы
  • doCreate - Создаёт новый архив
  • doOrder - Добавляет файл в список на упаковку в архив
  • doCompress - Упаковывает файлы списка в архив
  • doClose - Закрывает архив
  • doOpen - Открывает существующий архив
  • doList - Получает список файлов в архиве
  • doOrderMulti - Добавляет файл в список на упаковку в архив по маске множественного выделения
  • doExtractOne - Извлекает файл из архива с индексом полученным с верхней точки
  • doExtractAll - Распаковывает всё содержимое архива
  • doDelete - Удаляет файл из архива с индексом полученным из потока
  • doCancel - Прерывает операцию упаковки или распаковки архива
  • События
  • onProgress - Ежесекундное событие для отображения выполнения процесса работы
  • onError - Происходит после выполнения любого метода элемента и возвращает код завершения операции, если не равен 0 - произошла ошибка (коды ошибок см. в справке)
  • Свойства
  • Count - Содержит количество файлов в архиве
  • List - Содержит список файлов, полученных из архива методом doList
  • Данные
  • ZipFileName - Определяет имя файла архива
  • BasePath - Путь для распаковки или множественной упаковки
  • FileMask - Маска множественного поиска файлов, например: *.TXT (только для упаковки с использованием множественной маски поиска)
  • Index - Индекс файла в архиве, начиная с нуля, для операции извлечения из архива
  • Пример
    Пример использования компонента Zipper
    Add(MainForm,2953706,238,84)
    {
    Caption="Пример использования Zipper"
    link(onCreate,14903567:doCreate,[(317,104)(317,125)])
    }
    Add(Zipper,14903567,329,119)
    {
    FileMask="*.*"
    ZipFileName="c:\hiasm_zip.zip"
    BasePath="C:\"
    Method=3
    }
    Add(Button,9251653,238,168)
    {
    Left=140
    Top=140
    Width=125
    Caption="2. pack"
    Point(onMouseDown)
    link(onClick,14903567:doClose,[(317,174)(317,146)])
    link(onMouseDown,14903567:doCompress,[(310,181)(310,139)])
    }
    Add(DropFile,10306507,238,126)
    {
    link(onDropFile,14903567:doOrder,[])
    }
    Add(Label,2441787,168,84)
    {
    Left=140
    Top=75
    Width=125
    Height=30
    Font=[MS Sans Serif,16,0,0,1]
    Caption="1. Drop Files"
    }
    Add(Timer,9178668,238,210)
    {
    link(onTimer,1517044:doText,[])
    }
    Add(Label,1517044,329,210)
    {
    Left=140
    Top=110
    link(Text,14903567:Count,[])
    }

    Замечания
       Пожалуй это самый распространённый формат архивов на сегодня. Невысокая степень сжатия компенсируется хорошей скоростью и широкой известностью (как говорят поклонники других форматов, во многом незаслуженной). Zip-архивы могут включать в себя комментарии и быть зашифрованными с использованием пароля. Поддержка многотомных архивов в самом формате Zip ограничена: их можно создавать только на дискетах, так как Zipper меняет метку диска, указывая в ней номер тома. Кроме того, Zipper позволяет разбивать архивы на части.

       Внимание! Используемая библиотека bszip.dll версии 3.02 содержит ограничение на объём создаваемого архива не более 16 мегабайт.

       Событие onError возвращает следующие коды ошибок:

    Возвращаемое значение Описание ошибки
    1 Не правильная структура архива
    2 Устаревший метод компрессии
    3 Не возможно прочитать файл
    4 Невозможно открыть файл
    5 Невозможно записать файл
    6 Невозможно создать новый файл
    7 Ошибка выполнения функции
    8 Остановка пользователем
    9 Файл уже существует
    10 Невозможно удалить старый ZIP файл
    11 Невозможно переименовать временный файл
    12 Невозможно создать временный файл
    13 Не правильный путь для создания архива
    14 Невозможно открыть временный файл
    15 Это первый том многотомного архива, а нужен последний
    16 Невозможно найти том многотомного архива


    Обновление элемента: [svn]Zipper.pas[/svn]
    BB-code статьи для вставки
    Всего комментариев: 0
    (комментарии к статье еще не добавлены)
    Комментарий
    ...