Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2012, 16:29   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию Как добавить несколько файлов в ZIP архив в TZipForce?

Сабж. Делаю так:
Код:
var
 i: integer;
begin
  if not FileExists(ExtractFilePath(Application.ExeName) + DateToStr(Now) + '.zip') then
  begin
   with Form1.ZipForge1 do
   begin
     BaseDir:=ExtractFileDir(Application.ExeName); //где хранить архив
     SpanningOptions.VolumeSize:=vsAutoDetect; //делаем один архив
     SpanningMode:=smSpanning; //раздельный
     FileName:=ExtractFilePath(Application.ExeName) + DateToStr(Now) + '.zip'; //мой архив
     OpenArchive(fmCreate); //открываем архив
     for i := 0 to Form29.sListBox1.Items.Count - 1 do
     begin
      AddFiles(ExtractFilePath(Application.ExeName) + Form29.sListBox1.Items[i]);
     end;
     CloseArchive;
   end;
  end;
end;
но выводится ошибка, что:
Изображения
Тип файла: png 1234.png (13.4 Кб, 128 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2012, 17:59   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Давно не использовал ZipForge. Раньше он не умел архивировать папки, умел только файлы. Сейчас не знаю, вроде тоже не умеет. Поэтому если в sListBox1 не только файлы, то ошибка должна возникать.
eoln вне форума Ответить с цитированием
Старый 27.08.2012, 18:04   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

В sListBox только файлы. Вернее полные пути к ним. Я не папки архивирую, а файлы. Файлы же он наверное может несколько штук архивировать?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2012, 18:18   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Тогда не скажу в чём дело. Глянул свои старые исходники, там также всё. В гугле нашёл описание
Цитата:
ошибка: "Multiple transactions are not supported for multi-volume archives - Native error: 00062" при разделении архива на тома;
Наверное, в этом проблема (может файл большой).
eoln вне форума Ответить с цитированием
Старый 28.08.2012, 00:02   #5
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

artemavd, Ваш код у меня с ZipForge v.6.0 работает нормально. Единственно что пришлось изменить SpanningMode на smNone так как у меня нету флоппика.
Цитата:
В sListBox только файлы. Вернее полные пути к ним. Я не папки архивирую, а файлы. Файлы же он наверное может несколько штук архивировать?
Это зачем же там полные пути? Вы же определяете директорию исполняемого модуля (ExtractFilePath(Application.ExeNam e)) и к ней уже прибавляете имена файлов. Если в листбоксе полные пути то понятно что таких файлов не существует, поэтому может быть и ошибка.
astecenko вне форума Ответить с цитированием
Старый 28.08.2012, 03:56   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Не, эта ошибка не связана с тем, что не может не существовать файлов. Проверено на примере одного файла. Попробую изменить режим на smNone
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.08.2012, 07:49   #7
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

При smSpanning ошибку не выдавало, появлялось сообщение "Insert removable disk #1"


Код:
ExtractFilePath(Application.ExeName) + DateToStr(Now) + '.zip'
Наверное лучше вынести в отдельную переменную
astecenko вне форума Ответить с цитированием
Старый 28.08.2012, 09:16   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Наверное лучше вынести в отдельную переменную
Та не, это не имеет значение. Сам по себе архив прекрасно создается. Просто файлы не добавляются по нескольку штук в него.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.08.2012, 09:22   #9
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Хм, странно.
При SmNone
Если в листбоксе просто список имен файлов расположенных в одной директории с программой, например
файл1.txt
файл2.txt

Вашим кодом всё прекрасно добавляется - проверенно лично (D7+ZipForge6.0)
astecenko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программно распаковать zip-архив Dux Общие вопросы Delphi 19 23.08.2013 09:38
Как создать и сохранить несколько файлов в .zip Lubocka Microsoft Office Excel 8 09.08.2012 20:50
Zip-архив и названия файлов украинскими буквами Richardcv Общие вопросы по Java, Java SE, Kotlin 0 14.01.2009 17:38
как распакавать zip-архив Олька Помощь студентам 3 02.09.2008 21:54
Zip архив urels Общие вопросы Delphi 7 26.04.2008 17:31