Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Abbrevia Zipper [D7, WinXP]


ArtemESC ©   (2005-08-12 22:48:00) 

Доброго времени суток. Кто-нибудь работал с этим
компонентом?Добавляю файлы в архив, а он вставляет
еще и родительские каталоги. В пакет Abbrevia входит
и пример использования Zippera, такой же глюченный.
Кто знает в чем дело помогите разобраться!


Poirot   (2005-08-30 09:46:00) [1]

Да.. формата. могу в коментрии предложить добавлять список пустых дир или какойнить спец файлик в архив класть с этим списком.. имхо это буит вернее...


EugeneB   (2005-08-30 09:29:00) [2]

Имеется ввиду формат zip (знание формата)? Просто мне нужно получить точную копию содержимого директории в архиве а в директории могут быть пустые директории и они же должны присутствовать в архиве - это не для экономии я сжимаю пустоту.


Poirot   (2005-08-29 19:23:00) [3]

EugeneB   (29.08.05 15:29) [9]
А оно зачем?!Можешь руками просто дописать в файл:)
Немного знания формата и вуаля, только не понятно надоли - чисто теоритически сжимаю пустату, получишь пустату + заголовок. описывающий этут пустату - в итоге количество информации увеличится, что ни есть сжатиес :)


EugeneB   (2005-08-29 15:29:00) [4]

И еще вопрос: у кого-нибудь получается добавить в архив пустую директорию? У меня при любых флагах не получается.


Ученик   (2005-08-13 11:24:00) [5]

>ArtemESC   (13.08.05 11:15) [7]
Ученик   (13.08.05 11:03) [6]


ArtemESC   (2005-08-13 11:15:00) [6]

Что-то в этом роде...:
Zipper.FileName := ProgramDir + 'Temp.ZIP';
 If (FindFirst(TempDir + '\*', 0, SR) = 0) then
    repeat
    If (SR.Name <> '.') and (SR.Name <> '..') then
      begin
      FileSetAttr(TempDir + '\' + SR.Name, 0);
      Zipper.AddFiles(TempDir + '\' + SR.Name, 0);
      end;
    until (FindNext(SR) <> 0);
Все файлы и каталоги точно существуют.
Но в архив добавляются только файлы.


Ученик   (2005-08-13 11:03:00) [7]

Не знаю, что значит нормально, но вот пример



uses
 AbArcTyp, FileCtrl;

procedure TForm1.Button1Click(Sender: TObject);
var
 sDirectory: string;
begin
 DeleteFile('c:\test.zip');
 if SelectDirectory(sDirectory, [], 0) then begin
   AbZipper1.StoreOptions := [soStripDrive,soRemoveDots,soRecurse];
   AbZipper1.BaseDirectory := sDirectory;
   AbZipper1.FileName := 'c:\test.zip';
   AbZipper1.AddFiles('*.*', faArchive);
   AbZipper1.Save
 end
end;


Ученик   (2005-08-13 10:49:00) [8]

>ArtemESC   (13.08.05 10:39) [4]

Как используете сейчас ?  (желателен код)


ArtemESC   (2005-08-13 10:39:00) [9]

>>Ученик
И все-таки как правильно настроить эти флаги,
что-бы все работало нормально?


Ученик   (2005-08-13 10:22:00) [10]

TAbStoreOption =
 (soStripDrive, soStripPath, soRemoveDots, soRecurse, soFreshen, soReplace);


ArtemESC   (2005-08-13 00:27:00) [11]

Все хорошо.
Только теперь почему-то каталоги не добавляются???


Ученик   (2005-08-12 23:16:00) [12]

StoreOptions := StoreOptions + [soStripPath];


Наверх

Титульная страница Поиск, карта сайта Написать письмо