Главная страница
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.036 c
6-1101480735
Muhan
2004-11-26 17:52
2005.02.13
Как выудить данные с интернет страницы с помощью ссылки в Делфи


4-1103836615
Михаил М
2004-12-24 00:16
2005.02.13
Стандарный вывод (ввод) консольных приложений Windows


6-1101878057
VAV
2004-12-01 08:14
2005.02.13
Скачивание данных и инета


14-1106491743
jack128
2005-01-23 17:49
2005.02.13
Задачка про визирей


1-1106999603
.dn
2005-01-29 14:53
2005.02.13
EXE