![]() |
Problem nach dem entpacken einer Zip Datei
Hallo ich habe folgendes Problem ich habe eine Zip-Datei einpackt und möchte eine enpackte Datei umbennen. Aber ich bekomme keinen Zugriff auf diese Datei und kann dies Datei daher nicht umbennen.
Vieleicht hat jemand eine Tipp für micht Code Ausschnitt
Delphi-Quellcode:
if FileExists('xyz.zip') then
begin // Daten entpacken archiver := TZipMaster19.Create(self); try with archiver do begin FSpecArgs.Clear; ZipFilename := 'xyz.zip'; ExtrBaseDir := myDir; Extract; end; archiver.Free; except archiver.Free; Exit; end; IF RenameFile(myDir + 'FERTIG.DAT', myDir + 'STOP.DAT') then // gibt ständig false begin // tu irgendwas end; end; |
AW: Problem nach dem entpacken einer Zip Datei
Wenn du deinen Quellcode anständig formatieren würdest (Helm-Icon in der Toolbarleiste des Editors) könnnte man leichter verstehen was der Code macht.
|
AW: Problem nach dem entpacken einer Zip Datei
Ist erledigt!
|
AW: Problem nach dem entpacken einer Zip Datei
Wieso nimmst Du keinen try-finally-Block? Das sieht so etwas komisch aus. Und dann entpackst Du nach MyDir und willst anschließend in MDEDIR nach den entpackten Dateien suchen. Bist Du sicher, dass das so richtig ist?
|
AW: Problem nach dem entpacken einer Zip Datei
Sorry das war mein Fehler ich den Codeausschnitt zusammengeschrieben MyDir = MDEDir.
except Teil soll nur durchlaufen wenn beim entpacken ein Fehler auftritt und entsprechend behandelt werden |
AW: Problem nach dem entpacken einer Zip Datei
1, Aufruf von FileExists ohne Pfadangabe ist ungünstig da du dann darauf angewiesen bist was das aktuelle Verzeichnis deines Programms ist
2, Beinhaltet myDir ein Abschließenden Backslash? |
AW: Problem nach dem entpacken einer Zip Datei
Und die STOP.DAT gibt es definitiv noch nicht? Evtl. wäre es günstiger, statt RenameFile Windows.MoveFile zu benutzen und im Fehlerfall mit GetLastError zu ermitteln, was da nicht funktioniert.
|
AW: Problem nach dem entpacken einer Zip Datei
Delphi-Quellcode:
Wenn dort * eine Exception auftritt, was wird dann wohl passieren?
...
archiver.Free; <<< * except archiver.Free; Exit; end; Außerdem unterdrückst du so einfach eine Fehlermeldung, so daß man garnicht weiß, warum es schief lief. Zitat:
Delphi-Quellcode:
Und wie sieht der Pfad in myDir aus?
if FileExists('xyz.zip') then
begin // Daten entpacken archiver := TZipMaster19.Create(self); try with archiver do begin FSpecArgs.Clear; ZipFilename := 'xyz.zip'; ExtrBaseDir := myDir; Extract; end; finally archiver.Free; end; IF RenameFile(myDir + 'FERTIG.DAT', myDir + 'STOP.DAT') then begin // tu irgendwas end else RaiseLastOSError; end; [add] ![]() ![]() ![]() ![]() ![]() |
AW: Problem nach dem entpacken einer Zip Datei
Bei if FileExists(... ist auch ein myDir vorangestellt und haben einen abschließenden Backslash.
Eine STOP.DAT ist nicht vorhanden das Verzeichnis vor dem entpacken leer ist. Ich habe vorher die Componente Zipforge, da hat es problemlos funktioniert. |
AW: Problem nach dem entpacken einer Zip Datei
Danke, besonders an himitsu da war wohl ein Knoten im Hirn
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz