Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
ВнизПочему у меня результат упаковки 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c