Как сделать ZIP?

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

Как сделать ZIP?

Сообщение Alex333 » 22.09.2011 09:25:21

Народ, а есть для FreePascal что-нибудь готовое для создания ZIP - архивов? То, что можно вызвать pkzipc.exe или 7zip.exe - это я понимаю А встроенное что-нибудь есть, навроде делфишных ZipTV, VCLZip, KAZIP и пр.?
Alex333
новенький
 
Сообщения: 32
Зарегистрирован: 21.08.2011 19:14:28

Re: Как сделать ZIP?

Сообщение Nik » 22.09.2011 09:50:01

Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Как сделать ZIP?

Сообщение Alex333 » 22.09.2011 11:49:04

Это годится.
Я пока ещё не понимаю тут идеологию пакетов (особенно тех, которые не регистрируются), но методом тыка всё получилось.

Только вот теперь если я перенесу проект, например, на другую машину, на которой fparchive будет в другом каталоге - какой мой порядок действий - что и где надо будет поменять в проекте? (возможно, вопрос глупый - но уж потерпите меня маленько... :-) )

Спасибо.
Alex333
новенький
 
Сообщения: 32
Зарегистрирован: 21.08.2011 19:14:28

Re: Как сделать ZIP?

Сообщение Ism » 22.09.2011 13:22:13

Нужно для задания путей использовать системные переменные лазаруса, например $(ProjOutDir)
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Как сделать ZIP?

Сообщение Odyssey » 22.09.2011 20:37:38

Ещё есть не просто "встроенный" вариант, но даже из стандартной поставки: модуль Zipper, классы TZipper и TUnZipper. Пример использования можно посмотреть например в этой теме: http://www.freepascal.ru/forum/viewtopic.php?t=6154 , или тут: http://wiki.freepascal.org/paszlib
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Как сделать ZIP?

Сообщение Alex333 » 23.09.2011 10:37:24

Любопытно. Попробую.
А ещё - мне на глаза попался пример на VBS, вот такой:
Код: Выделить всё
Function UnZipFiles(sZipFile, sDest)
    'Create Shell.Application object
    Set oShell = WScript.CreateObject("Shell.Application")
    'Get zip file namespace object
    Set oFolder = oShell.NameSpace(sZipFile)
    'Get list of items in zip file
    Set oItems = oFolder.Items
    'If not exists, create destination folder
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FolderExists(sDest) = 0 Then fso.CreateFolder(sDest)
    'Get destination folder namespace object
    Set oDest = oShell.NameSpace(sDest & "")
    'Extract the files
    oDest.CopyHere oItems, 64
End Function


Насколько я понимаю, он использует стандартные возможности Windows (а мне и надо именно для Windows, в данном конкретном случае).
Вот такое как-то можно обернуть в Паскаль? Или ещё лучше - паскальная обёртка для какой-нибудь из виндовых DLL, которую этот скрипт в итоге использует?

Добавлено спустя 22 минуты 45 секунд:
Да, всё же остановлюсь я на TZipper наверно. Он мне наиболее понравился. Без всякого гламура, установки, просто и эффективно.

Спасибо.
Alex333
новенький
 
Сообщения: 32
Зарегистрирован: 21.08.2011 19:14:28


Вернуться в Сторонние средства

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru