FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9239
Вход
Опять архивирование по методу Zip

Архивация по методу Zip с использованием механизма API при свободно распространяемой библиотеке ZlibWapi.Dll - архивация указываемого каталога по методу .Zip - поддерживаются (default) вложенные подкаталоги - стандартные маски файлов с использованием "*" и "?" - распаковка стандартных архивов Zip, (как внешних, так и Native, созданных) - распаковка файлов с исходными атрибутами (время,атрибуты) Изменения и дополнения от 20.12.2004 в файле Read_Me.txt


 
Прислал: Shm-Soft   Категория: Разное

Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.788) Вложение [65.28]kb
Дополнения пользователей
Опять архивирование по методу Zip
[+][?]
Андрей Шморин
05.12.04 07:26:01

К сожалению загрузилось два решения (был обрыв соединения). Решения 449 и 450 идентичны, Если
возможно, Администратор может удалить одно из них.

Екатерина
10.12.04 16:01:33

писала на мыло,
но видать вы проигнорировали
Хотите отзывы, пожалуйста :-))))
Здравствуйте, shmsoft.
притветствую
Предлагаю Вам отзывы по архиватору
после 1 дня тестиррования
Они конечно в основном "косметические",
но требуют решения на уровне КЛАССА,
 а не формы для архивации...
В целом класс мне понравился, работает быстро
и качественно

ваш реад_ме файл нечитаем,
фрифт и кодировка как????

А существует ли "опция" в этой длл-ке,
добававить файлы в архив,
может использовать ее
А то я в один итот же файл например хочу добавить
сначала dbf, потом   fpt итд(ну типа я продвинутый юзверь)
а он все перезаписывает...
надо добавить в класс свойство "Set Safety" для архива

1)попробуйте указать пустое
thisform.shm_zip21.input_path=
надо обаботать ошибку в классе,
архив то уже открыт!!!

2)обработать ошибку-
 задание пустой маски для файлов в классе,
задание НЕКОРРЕКТНОЙ маски для файлов

3)если доступ к архивируемому файлу закрыт, то
он добавляется , но с размером 0 байтов :-)))
что наверно не есть хорошо
уж тогда лучше не добавлять наверно....
а то потом радостный юзер восстановит вам данные
Ну например, открыта где то еще по сети таблица,
контейнер баз по сети эксклюзивно
из архивируемой директории, Ваш класс пишет
мессагу что невозможно открыть, но добавляет с 0 размером. 

  
4)обработать ошибку в классе  в методе архивации
директории-
 задание пустой дирректории
или в дирректории только одна, но пустая папка 

5)проверить имя создаваемого архива наналичие недопустимых символов
6)ВЫходной файл архив!!!!
  тоже проверит имя файла на коректность, пустоту
 строго задавать расширение .zip, а то ведь дает
изменить расширение и типа чето там архивирует.
7)если закон позволяет :-))))), то забить 
длл-ку в сам класс(в мемо поле user), как это сделано 
у Кирпичева, вообще нормально будет


Примерно тоже про разархивацию:
1)выбор файла-архива
надо жестко прописать расширение ZIP,
а то попытки чтото впишать вызывают ошибки в вызываемых функциях
2)Используете листбокс для выбора файлов,
это конечно к классу нео относиться
  Мне кажется надо предусмотреть мультиселект в листбоксе и
соответственно включение  термометра
 
С уважением  Екатерина ака Кэт.


Андрей Шморин
10.12.04 17:13:26

to Екатерина 
Спасибо за конструктивные замечания, предложенное решение рассматриваю как ОСТОВ для персональной
доработки в конкретном приложении, еще раз спасибо за внимание...

Екатерина
15.12.04 08:41:45

Приветствую Андрей.
Прошу помощи в решении проблемы:
Как на уровне класса побороть ошибку,
возникающую при "подсовывании" методу zipdir
пустой дирректории, т.е без файлов
Спасибо
Андрей Шморин
20.12.04 17:21:32

to Екатерина & All, подготовлена и загружена обновленная версия, основные моменты: - учтены и
исправлены ошибки (замечания от Екатерины); - введено свойство .erase_zip = .t. (удалять старый
архив), = .f. (default) дополнять в уже имеющийся (без гарантий уникальности файла); - введено
свойство .Safety - перезапись файлов при распаковке (.t.-запрашивать, .f.- Нет)- ведется
дополнительная проверка блокировки файла назначения при распаковке;  - использован трюк Кирпичева
по инициализации библиотеки класса (пожалуйста - без обид)	хороший трюк всегда высоко ценится;
- повторюсь: класс представлен как БОЛВАНКА, можно смело дорабатывать, Привет всем, Shm-Soft,
20.12.2004

SamSem
24.07.05 08:22:53

Здравствуйте.Попробал воспользоваться Вашим примером.
Разархивация архивов,созданные pkzip for DOS,не получается.
В Listbox отображаются все файлы архива,но при разархивации
создаются файлы с длиной 0.Может что нибудь подскажите.Спасибо.
ShmSoft
27.07.05 15:33:13

To SamSem
прочитал Вашу заметку-вопрос, еще раз тестировал для следующих внешних архиваторов:
1) WinRar 3.11 (архивация в формат .Zip)
2) PkZip/PkUnzip ver.3.05, 09-10-92
- все работает, может в самой форме (Forma2) есть нелепости
(вполне допускаю)...
-------------------------------------
при желании пошлите Ваш архив (.zup) на адрес
shmsoft@mail.ru
shmsoft@rol.ru

Best Regards, Shm-Soft, 27.07.05

ShmSoft
28.07.05 15:23:27

To: SamSem
Посмотрел по-внимательнее решения (прошло уже более полугода), можно было сделать лучше, есть
недочеты и скрытые ошибки.
Изначально предполагалось, что архивы не будут шифроваться паролем (PassWord), поэтому в
библиотеке используется обычная функция открытия заархивированного файла в архиве
(unzOpenCurrentFile), для защищенных паролем файлов необходимо использовать следующее
(unzOpenCurrentFilePassword)
----------------------------------------
вообще в классе shm_zip2 все описано достаточно подробно...
Zakharov_slava
24.07.07 12:56:43

А возможно ли с использованием этого решения архивировать shared files? (Аналог -dh параметра в
Winrar)...
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика