Как сделать ZIP?
Модератор: Модераторы
Как сделать ZIP?
Народ, а есть для FreePascal что-нибудь готовое для создания ZIP - архивов? То, что можно вызвать pkzipc.exe или 7zip.exe - это я понимаю А встроенное что-нибудь есть, навроде делфишных ZipTV, VCLZip, KAZIP и пр.?
- Nik
- энтузиаст
- Сообщения: 573
- Зарегистрирован: 03.02.2006 23:08:09
- Откуда: Киров
- Контактная информация:
2Alex333
Как вариант: http://wiki.lazarus.freepascal.org/Free ... ivePackage
Как вариант: http://wiki.lazarus.freepascal.org/Free ... ivePackage
Это годится.
Я пока ещё не понимаю тут идеологию пакетов (особенно тех, которые не регистрируются), но методом тыка всё получилось.
Только вот теперь если я перенесу проект, например, на другую машину, на которой fparchive будет в другом каталоге - какой мой порядок действий - что и где надо будет поменять в проекте? (возможно, вопрос глупый - но уж потерпите меня маленько...
)
Спасибо.
Я пока ещё не понимаю тут идеологию пакетов (особенно тех, которые не регистрируются), но методом тыка всё получилось.
Только вот теперь если я перенесу проект, например, на другую машину, на которой fparchive будет в другом каталоге - какой мой порядок действий - что и где надо будет поменять в проекте? (возможно, вопрос глупый - но уж потерпите меня маленько...
Спасибо.
Нужно для задания путей использовать системные переменные лазаруса, например $(ProjOutDir)
Ещё есть не просто "встроенный" вариант, но даже из стандартной поставки: модуль Zipper, классы TZipper и TUnZipper. Пример использования можно посмотреть например в этой теме: http://www.freepascal.ru/forum/viewtopic.php?t=6154 , или тут: http://wiki.freepascal.org/paszlib
Любопытно. Попробую.
А ещё - мне на глаза попался пример на VBS, вот такой:
Насколько я понимаю, он использует стандартные возможности Windows (а мне и надо именно для Windows, в данном конкретном случае).
Вот такое как-то можно обернуть в Паскаль? Или ещё лучше - паскальная обёртка для какой-нибудь из виндовых DLL, которую этот скрипт в итоге использует?
Добавлено спустя 22 минуты 45 секунд:
Да, всё же остановлюсь я на TZipper наверно. Он мне наиболее понравился. Без всякого гламура, установки, просто и эффективно.
Спасибо.
А ещё - мне на глаза попался пример на 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 наверно. Он мне наиболее понравился. Без всякого гламура, установки, просто и эффективно.
Спасибо.
