Hallo Freunde des Delphi- Codes!
Für die Erstellung eines Update- Programmes, versuche ich Dateien, die mir von extern gepackt in ZIP- Dateien zugeschickt werden mit Delphi zu entpacken. Nach Internetrecherchen bin ich auf die Zlib- Funktion von Delphi gekommen. Das funktioniert auch soweit nach dem vorgegebenem Code, jedoch nur mit Dateien, die ich auch vorher mit Delphi gepackt habe.
Was muss ich tun, um die Dateien, die mit einem beliebigen Packprogramm erstellt worden sein können, zu entpacken?
Hier mein bisheriger Code: (Mit dem es eine Fehlermeldung gibt.)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| var InputStream, OutputStream: TFileStream; DeCompressionStream: ZLib.TDeCompressionStream; Buf: array[0..4095] of Byte; Count: Integer; begin InputStream:=TFileStream.Create('d:\test.zip', fmOpenRead); try OutputStream:=TFileStream.Create('d:\test_unzip.txt', 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; |
Ich würde mich sehr über Tipps und Anregungen freuen!
Bitte bedenkt in den Antworten, dass ich Delphi- Anfänger bin
PS:
In weiteren Schritten sollen diese Dateien dann alte Dateien überschreiben, welche aber vorher gesichert werden müssten und ggf. zurückgespielt werden. Dazu aber später ggf. mehr
