Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Почему у меня результат упаковки zLib ом не открывается Winzip?   Найти похожие ветки 

 
Aleksandr.   (2005-01-31 15:31) [0]

В кои-то веки решил переползти с TVclZip на встроенный в Делфу zLib, сделал для теста так:

var
 L     : TSearchFileList;
 zDest : TFileStream;
 zSrc  : TFileStream;
 zL    : zlib.TCompressionStream;
 Buf   : array of byte;
begin
 L:=TSearchFileList.Create;
 try
   if SearchFiles(L,"C:\Test\*.apd") then begin
     zDest:=TFileStream.Create("C:\Test\000.zip",fmCreate);
     zL:=TCompressionStream.Create(clDefault,zDest);
     try
       while L.Count>0 do begin
         SetLength(Buf,0);
         zSrc:=TFileStream.Create(L.Items[0].FullFileName,fmOpenRead OR fmShareDenyNone);
         try
           SetLength(Buf,zSRC.Size);
           zSrc.Read(Buf[0],length(Buf));
           zDest.Seek(0,soEnd);
           ZL.Write(Buf[0],length(Buf))
         finally
           zSRC.Free
         end;
         L.Delete(0)
       end
     finally
       zL.Free;
       zDest.Free
     end
   end
 finally
   L.Free
 end


Вроде пакует все, но полученный в итоге файл не открывается ни WinZip ни чем другим. Что тут не так?


 
Aleksandr.   (2005-01-31 15:36) [1]

Епрст... конечно, не понимают, я же пачку файлов загоняю, а не один. Только как ему указать, что файлов-то - несколько?


 
Digitman ©   (2005-01-31 15:50) [2]


> как ему указать, что файлов-то - несколько?


никак.

выходной формат zLib-компрессора не соответствует формату ZIP-архива


 
wicked ©   (2005-01-31 17:11) [3]


> выходной формат zLib-компрессора не соответствует формату
> ZIP-архива

можно заставить, чтоб соответствовал... для этого нужно хитро проинициализировать компрессор - передать параметр windowBits в deflateInit2/inflateInit2 отрицательное число, например, стандартное -15...
как эта фича завернута в delphi - не знаю...



Страницы: 1 вся ветка

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.065 c
9-1099150691
Cash
2004-10-30 19:38
2005.02.13
Трейнеры {опять. Создание.}


14-1106384467
Серый
2005-01-22 12:01
2005.02.13
Смешная ссылка


6-1101142083
integer
2004-11-22 19:48
2005.02.13
как можно удалить ненужниє ссилки из WebBrowser


1-1106825905
Antonn
2005-01-27 14:38
2005.02.13
Заменить ресурс в Dll


3-1106035711
Bless
2005-01-18 11:08
2005.02.13
Можна ли сделать, чтобы внутри транзакции часть кода не откатывал