Hi,
hab die untenstehende Prozedur aus dem Forum gefunden um Dateien zu entzippen. In dem Beitrag stand auch, das sie funktionieren würde. Tut sie bei mir aber nicht.
Ich verstehe nicht ganz die beiden Übergabeparameter. 1.zu entzippende Datei(Pfad) 2.entzippte Datei(Pfad)...Er legt halt wirklich nur eine Datei an. War entpackt er die Datei(en) nicht automatisch in einen Ordner? Ist doch klar das Dateien nicht in eine andere Datei entzippt werden können. Wie untenstehend habe ich die Dateiendung weggelassen, in der Hoffnung das ein Ordner anstatt einer DAtei erstellt wird. Aber klappt nicht.
Uses
{$IFDEF FPC}zstream{$ELSE}ZLib{$ENDIF}
Prozedur
Delphi-Quellcode:
procedure Decompress(InputFileName, OutputFileName: string);
var InputStream, OutputStream: TFileStream;
DeCompressionStream: TDeCompressionStream;
Buf: array[0..4095] of Byte;
Count: Integer;
begin
InputStream:=TFileStream.Create(InputFileName, fmOpenRead);
try
OutputStream:=TFileStream.Create(OutputFileName, fmCreate);
try
DecompressionStream := TDecompressionStream.Create(InputStream);
try
while true do
begin
Count := DecompressionStream.Read(Buf[0], SizeOf(Buf));
if Count = 0 then
break
else
OutputStream.Write(Buf[0], Count);
end;
finally
DecompressionStream.Free;
end;
finally
OutputStream.Free;
end;
finally
InputStream.Free;
end;
end;
Aufruf
Decompress(TempDownloadDir+IP+'\'+Form1.ListBox3.Items[i], TempDownloadDir+IP+'\'+SubStr{+'.log'});