gifts2017

Распаковщик RAR-архивов - UnRAR 1C

Опубликовал Андрей Лукин (frkbvfnjh) в раздел Программирование - Внешние компоненты

Внешняя Native компонента для распаковки RAR-архивов.

Компонента использует последнюю версию бесплатной библиотеки "unrar.dll" с официального сайта автора архиватора RAR. Библиотека уже встроена во внешнюю компоненту, ничего отдельно скачивать и устанавливать не нужно, в том числе и сам архиватор. Поддерживаются архивы формата RAR и RAR5 (многотомные архивы, самораспаковывающиеся архивы, архивы закрытые паролем). Операции, которые можно выполнить над архивом с помощью данной компоненты:

  1. Получение списка файлов в архиве с информацией о каждом файле;
  2. Тестирование архива;
  3. Извлечение из архива как всех, так и отдельных файлов с сохранением и без сохранения путей файлов в указанный каталог;
  4. Получение комментария архива;
  5. Настройка автопароля для распаковки архивов;
  6. Получение номера версии используемой библиотеки "unrar.dll";

Внешняя компонента написана на Delphi по технологии Native API, имеет 6 методов и 2 свойства. Далее английское и русское имя метода/свойства буду разделять символом "|".

Методы:

1. DLLVersion|ВерсияDLL() - Возвращает версию файла "unrar.dll";
Параметры: Нет;
Возвращаемое значение: Тип Число. Версия файла "unrar.dll".

2. CommentArchive|КомментарийАрхива(<Строка>) - Возвращает комментарий архива;
Параметры:
<Строка> - Тип Строка. Полное имя файла архива;
Возвращаемое значение: Тип Строка. Комментарий архива.

3. ListFilesArchive|СписокФайловАрхива(<ИмяФайлаАрхива>, <Комментарий>) - Возвращает список файлов архива;
Параметры:
<ИмяФайлаАрхива> - Тип Строка. Полное имя файла архива;
<Комментарий> - Тип Строка. Выходной параметр. В качестве значений необходимо передать переменную, в которую будет помещен комментарий архива;
Возвращаемое значение: Тип Строка. Список файлов архива в формате CSV (пример смотреть в обработке).

4. TestArchive|ТестАрхива(<ИмяФайлаАрхива>, <ОписаниеОшибки>) - Выполняет тест архива;
Параметры:
<ИмяФайлаАрхива> - Тип Строка. Полное имя файла архива;
<ОписаниеОшибки> - Тип Строка. Выходной параметр. В качестве значений необходимо передать переменную, в которую будет помещена строка с описание ошибки в случае возникновения ошибки в процессе тестирования;
Возвращаемое значение: Тип Булево. Значение Истина - в случае успешного тестирования. Значение Ложь - в случае возникновения ошибки в процессе тестирования, в параметр <ОписаниеОшибки> будет помещена строка с описание ошибки.

5. ExtractArchive|РаспаковатьАрхив(<ИмяФайлаАрхива>, <ИмяКаталога>, <СохранятьПути>) - Распаковывает все файлы архива в указанный каталог;
Параметры:
<ИмяФайлаАрхива> - Тип Строка. Полное имя файла архива;
<ИмяКаталога> - Тип Строка. Полное имя каталога для распаковки файлов архива;
<СохранятьПути> - Тип Булево. Если Истина, то при распаковке будут сохранены все пути файлов;
Возвращаемое значение: Отсутствует.

6. ExtractFilesArchive|РаспаковатьФайлыАрхива(<ИмяФайлаАрхива>, <ИменаФайлов>, <ИмяКаталога>, <СохранятьПути>) - Распаковывает указанные файлы архива в указанный каталог;
Параметры:
<ИмяФайлаАрхива> - Тип Строка. Полное имя файла архива;
<ИменаФайлов> - Тип Строка. Имена файлов в архиве, которые необходимо извлеч;
<ИмяКаталога> - Тип Строка. Полное имя каталога для распаковки файлов архива;
<СохранятьПути> - Тип Булево. Если Истина, то при распаковке будут сохранены все пути файлов;
Возвращаемое значение: Отсутствует.

Свойства:

1. Version|Версия - Тип Строка. Содержит версию компоненты в виде строки. Данное свойство доступно только для чтения.

2. Password|Пароль - Тип Строка. Содержит пароль для распаковки архива. Если на архив не установлен пароль, то значение свойства игнорируется. Данное свойство доступно только для записи.

Примеры использования всех методов и свойств приведены в прилагаемых обработках.
Кому интересно: Внешняя Native компонента для сжатия/распаковки файлов по алгоритму Deflate, в том числе сжатия/распаковки архивов в формате GZip.

Скачать файлы

Наименование Файл Версия Размер
UnRAR1C (обычное приложение) 5
.epf 384,97Kb
18.03.16
5
.epf 384,97Kb Скачать
UnRAR1C Async (управляемое приложение, асинхронный режим) 4
.epf 384,51Kb
18.03.16
4
.epf 384,51Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Иван Ли (Irwin) 25.03.16 09:42
Неплохо было бы писать в скачиваемом файле версию "unrar.dll". А еще лучше не встраивать ее в компоненту, потому что при выходе новой версии придется каждый раз качать обработку (а выходят они достаточно часто). Проблема в том, что старые версии могут не работать с архивами, запакованными новой версией.
Сам не раз встречал такую проблему, поэтому rar-ом стараюсь не пользоваться, только zip.
2. Андрей Лукин (frkbvfnjh) 25.03.16 14:34
(1) Irwin, я то Вас понимаю и сам стараюсь не пользоваться rar-ом, но компонента служит как раз для распаковки, а не для запаковки и рассчитана на тех, кому по воли судьбы необходимо приходиться обрабатывать архивы rar, ну к примеру нужно в документообороте обрабатывать архивы которые присылают заказчики, да и та же фирма 1С все дистрибутивы платформы и др. файлы пакует rar-ом (наверное у них какое-то тайное соглашение), может кому нужно будет обработку написать по автоматическому скачиваний файлов с сайта 1С и их распаковки. Что касается версии библиотеки, то она самая последняя на момент создания публикации: версия файла - 5.31.100.1864, внутренняя версия - 7.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа