for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Не фоксом единым
  

автоматизация zip
boba
Автор

Сообщений: 5669
Откуда: Медвежьи озера-
Дата: 11.07.20 15:16:51
Нужно автоматизировать архивацию.
На сервере есть zip
Раньше без проблем автоматизировал arj
Думал, команды подойдут 1=1
Но что-то не выходит
Скажем нужно создать новый архив и поместить
туда все dbf , cdx из указанной директории



Исправлено: boba, 11.07.20 15:17
Ratings: 0 negative/0 positive

Re: автоматизация zip
Chemberzhy

Сообщений: 11745
Откуда: Измаил
Дата: 11.07.20 16:57:37
Вот хелп. В нем описание командной строки.

Как по мне, самый удобный вариант создать *.txt файл со списком архивируемых файлов и использовать команду zip-а

7z a -tzip NAME_FILE.zip @NAME_FILE.txt

P.S. Думаю, не проблема положить на сервер именно 7zip- он бесплатный.


------------------
Что-то с памятью моей стало, всё что было не со мной- помню.




Исправлено: Chemberzhy, 11.07.20 17:15
Ratings: 0 negative/0 positive

Re: автоматизация zip
PaulWist

Сообщений: 13462
Дата: 11.07.20 18:16:55
forum.foxclub.ru


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive

Re: автоматизация zip
sphinx

Сообщений: 27985
Откуда: Каменск-Уральски
Дата: 14.08.20 09:55:27
Crispy
Ну и уж до кучи. Паковка-распаковка с использованием бесплатной API-библиотеки от Akita Minoru, 7-zip32.dll, сделанной на основе методов из 7z, но обернутой как API, все используемые ключи похоже используются оттуда же (последняя версия, что мне попадалась - 4.57.0.1 от 2008, но возможно уже есть и поновее, если поглядеть-поискать).
Есть английский перевод (с японского) включенных в библиотеку функций (см. текстовый файл в прицепе).
В интерпретации же для фокса получаем такой код для добавления в архив:


lcCommands = "a"
lcArchName = "c:\2\archive.7z"
lcLstFiles = "c:\temp\1\"
lcSwitches = "-ms"
lcCmdLine = lcCommands + " " + lcArchName + " " + lcLstFiles + " " + lcSwitches

DECLARE long SevenZip IN 7-zip32.dll long, string, long, long
lnRet = SevenZip(0, lcCmdLine, 0, 0)

Аналогично (заменой команды "a" на "e") можно проделывать извлечение из архива, также и ряд других команд по работе с архивом (подробнее см. хелп к 7z).
Т.е., как видите, с использованием этой библиотеки все происходит абсолютно без использования командной строки и тому подобного, что на мой взгляд в ряде случаев получается намного удобнее.


------------------
"Вы поступили правильно, мой друг, но, боюсь, совершили ошибку"..."(с)




Исправлено: sphinx, 14.08.20 09:55
Ratings: 0 negative/0 positive



Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 8 (Гостей: 8)

28.11.2020 10:48:04 exec: 0.02
Mem: 1.197 Mb

© 2000-2020 Fox Club 
Яндекс.Метрика