Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Создание zip с помощью BinaryData - пути (число прочтений - 3921 )
andrewks
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 13. Октября 2012
Пол: Мужской
Создание zip с помощью BinaryData - пути
13. Октября 2012 :: 07:16
Печать  
создаю zip-архив при помощи метода
BinData.pkZip(""""+ИмяВыхФайла+""" """+ИмяФайла+"""");

проблема - в имя архиивруемого файла включается полный путь. как сделать так, чтобы в архиве вообще не было структуры каталогов, а сразу лежал файл?
  
Наверх
 
IP записан
 
andrewks
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 13. Октября 2012
Пол: Мужской
Re: Создание zip с помощью BinaryData - пути
Ответ #1 - 13. Октября 2012 :: 08:51
Печать  
итак, нашёл на форуме решение: (ссылку не пропускает - что за фигня? Извините, но Вы не можете размещать сообщения которые содержат активные ссылки на другие веб-сайты или изображения. Сначала Вы должны составить 2 обычных сообщений. )
устанавливать текущий каталог через ФС.УстТекКаталог  и использовать короткие мена файлов.
а вот посоветованный там же метод pkAppendFile нифига не работает.
BinData.ЗагрузитьИзФайла(ИмяФайла);
BinData.Seek(0);
BinData.pkAppendFile(ИмяВыхФайла,КоротИмяФайла);
выдаёт ошибку: Системе не удается произвести чтение с устройства.

пустой поток записывает без ошибок, а вот с данным - фигвам
  
Наверх
 
IP записан
 
andrewks
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 13. Октября 2012
Пол: Мужской
Re: Создание zip с помощью BinaryData - пути
Ответ #2 - 13. Октября 2012 :: 08:52
Печать  
  
Наверх
 
IP записан
 
andrewks
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 13. Октября 2012
Пол: Мужской
Re: Создание zip с помощью BinaryData - пути
Ответ #3 - 13. Октября 2012 :: 08:54
Печать  
кстати, нашёл незадокументированную фичу: (по крайней мере, нигде не нашёл)

Синтаксис: pkUnzip(Команда)

Параметры:

       Команда - тип Строка. Командная строка архиватору. Формат командной строки:

       [-s[пароль]] имя_и_путь_архива путь_к_каталогу_назначения

перед s можно вставить цифру от 0 до 9 - и можно урпавлять степенью сжатия!

например,
-0spassword - без сжатия
-9spassword - макс.сжатие
  
Наверх
 
IP записан
 
andrewks
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 13. Октября 2012
Пол: Мужской
Re: Создание zip с помощью BinaryData - пути
Ответ #4 - 13. Октября 2012 :: 08:56
Печать  
либо, если без пароля то просто:

-0
...
-9
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Создание zip с помощью BinaryData - пути
Ответ #5 - 14. Октября 2012 :: 05:10
Печать  
Ответ на (0):
при помощи ФС.УстТекКаталог переходишь в каталог с архивируемыми файлами и далее передаешь только имя файла, без каталога
  
Наверх
ICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Создание zip с помощью BinaryData - пути
Ответ #6 - 15. Октября 2012 :: 05:07
Печать  
А еще можно пользоваться встроенными в винду, начиная с версии 5.1 механизма zip-папок. Для этого сперва надо создать файл их 22х байт: 50 4B 05 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
А затем копировать, например через скрипт объектом Shell.Application
Пример:
App.NameSpace(MyTarget).CopyHere MySource
где MyTarget - имя зипа, а MySource - имя зипуемого файла.
  
Наверх
 
IP записан
 
andrewks
YaBB Newbies
*
Отсутствует



Сообщений: 6
Зарегистрирован: 13. Октября 2012
Пол: Мужской
Re: Создание zip с помощью BinaryData - пути
Ответ #7 - 15. Октября 2012 :: 16:28
Печать  
Dmitry The Wing, это я в курсе
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать