![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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];