![]() |
DeleteFile löscht gewünschte Datei nicht
Hallo, wie der Titel schon sagt, wird die gewünschte Datei nicht gelöscht, könnt ihr mir mal bitte sagen wieso?
Delphi-Quellcode:
Desweiteren erhalte ich, nachdem ich die Anwendung zur Laufzeit ein zweites mal ausführe (Button klicken --> Anweisungen werden ausgeführt, nochmal Button klicken --> selbe Anweisungen nochmal ausführen) eine Zugriffsverletzung in Zeile
procedure TfrmBankenDownload.ZIPAusführen;
var sExePfad, sZIPPfad: String; begin sZIPPfad := ExtractFilePath(ParamStr(0))+'Bankdaten.zip'; TRY ftpDateiDownload.Get('Bankdaten.zip',sZIPPfad, true); EXCEPT on E: Exception do ShowMessage('Beim Download der ZIP Datei ist ein Fehler aufgetreten.' + sLineBreak + 'Exception class name = '+E.ClassName + sLineBreak + 'Exception message = '+E.Message); END; TRY begin sExePfad := ExtractFilePath(Application.ExeName); AbZIPEntpacken.FileName := sZIPPfad; AbZIPEntpacken.BaseDirectory := (sExePfad+'Bankdaten'); AbZIPEntpacken.ExtractFiles('*.*'); Application.ProcessMessages; SysUtils.DeleteFile(sZIPPfad); // <------- ZIP Datei wird nicht gelöscht. end; EXCEPT on E: Exception do begin ShowMessage('Es ist ein Fehler beim Entpacken der ZIP Datei aufgetreten.' + sLineBreak + 'Exception class name = '+E.ClassName + sLineBreak + 'Exception message = '+E.Message); end; END; AbZIPEntpacken.Free; end;
Delphi-Quellcode:
Vielleicht kann mir da noch weitergeholfen werden, ohne ein neues Thema zu eröffnen
AbZIPEntpacken.FileName := sZIPPfad;
|
AW: DeleteFile löscht gewünschte Datei nicht
Vermutlich weil AbZIPEntpacken diese noch geöffnet hat?
PS: DeleteFile hat ein Result und kennt GetLastError PSS: Warum eigentlich einmal Application.ExeName und dann wieder ParamStr(0) ? Und die Exception: Du gibst AbZIPEntpacken frei, aber wo erstellst du es? |
AW: DeleteFile löscht gewünschte Datei nicht
Hallo himitsu,
Zitat:
Er speichert die Datei im richtigem Verzeichnis und entpackt sie dort auch, nur eben das Löschen der ZIP Datei funktioniert nicht. Zitat:
und dazu: Zitat:
Liegt aber vermutlich daran, dass der Ordner bereits existiert, daher möchte ich ihn ja löschen. |
AW: DeleteFile löscht gewünschte Datei nicht
Mach "SysUtils.DeleteFile(sZIPPfad);" nach "AbZIPEntpacken.Free;" ....
Ausserdem den anderen Rat von himi auch beachten. Das AbZIPEntpacken.Create() sollte eigentlich direkt über das zweite "try". HTH |
AW: DeleteFile löscht gewünschte Datei nicht
also das Löschen funktioniert jetzte.
aber es tritt immer noch der Fehler beim zweiten Klick auf (Zugriffsverletzung) Ich erzeuge die Komponenten nicht zur Laufzeit, als Zusatzinfo.
Delphi-Quellcode:
verstehe daher nicht, wieso ich meine ZIP Komponente nochmals erzeugen soll?
AbZIPEntpacken.Create(Self);
|
AW: DeleteFile löscht gewünschte Datei nicht
Zitat:
> Du hast über .FileName dem AbZIPEntpacken gesagt, es soll diese Datei öffnen/verwenden und das macht es auch, bis du was Anderes sagst. Hast du dir mal das Result, GetLastError und SysErrorMessage angesehn? Zitat:
Delphi-Quellcode:
.
AbZIPEntpacken := TAbZIPEntpacken.Create(Self);
Und wenn du es freigibst, dann ist es weg, also neu erstellen, aber wenn du es manuell erstellst, dann darfst du nicht die Komponente auf die Form legen, also nicht automatisch von der VCL erstellen lassen, wärend sie die Form erstellt. |
AW: DeleteFile löscht gewünschte Datei nicht
Kann sein, daß dein Antivierenprogramm die Datei noch nicht freigibt.
Auf jeden Fall mal das free vor dem delete probieren. Statt des Application.ProcessMessages mal ein sleep(1) versuchen (zwischen free und delete). Hast du AbZIPEntpacken:=TZipDingens.Create irgendwo stehen ? |
AW: DeleteFile löscht gewünschte Datei nicht
Zitat:
Ansonsten empfehle ich ![]() |
AW: DeleteFile löscht gewünschte Datei nicht
Zitat:
PS: Der Schuldige ist nicht der Virenscanner oder Sonstwer, sondern AbZIPEntpacken. |
AW: DeleteFile löscht gewünschte Datei nicht
Zitat:
das mit dem sleep werd ich mal probieren. TZipDingens.Create hab ich nirgends stehen, habe doch erwähnt dass ich die Komponente nicht zur Laufzeit erzeuge. Zitat:
das mit GetLastError muss ich mal schaun wie's funktioniert. F1 sollte weiterhelfen ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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