Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.035 c
3-1105982109
denis24
2005-01-17 20:15
2005.02.13
adoquery.parameters


9-1099835093
Колбасьев
2004-11-07 16:44
2005.02.13
3DS и другие форматы


9-1099832251
ASH
2004-11-07 15:57
2005.02.13
Звук для игр на Delphi..


10-1083047420
JibSkeart
2004-04-27 10:30
2005.02.13
Внутри СОМ не ловит события WaitForMultipleObjects почему ?


9-1099765354
FRick
2004-11-06 21:22
2005.02.13
SLScene_AntiAliasing





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский