![]() |
Gelöschte Datei immer noch vorhanden?
Hallo,
ich habe ein ganz komisches Verhalten:
Delphi-Quellcode:
Bei mehrfachem schnellen Aufruf dieses Codeschnipsels kommt ab und zu die Messagebox!
bild1 := 'c:\temp\pdf1.pdf';
bild2 := 'c:\temp\pdf2.pdf'; if TFile.Exists(bild2) then TFile.Delete(bild2); try TFile.Copy(bild, bild2); except showmessage(bild2 + ' wurde gelöscht, ist aber noch vorhanden !'); end; Was ist denn da los und viel wichtiger, wie bekommt man das korrigiert? Ciao Stefan |
AW: Gelöschte Datei immer noch vorhanden?
Liefert TFile.Delete keinen Rückgabewert, der Dir was zum Erfolg / Misserfolg des Löschens sagt?
Zuerst mal den abfragen. EDIT: Ok, habe mal unter ![]() Ist wohl anders als beim DeleteFile aus Delphi 7-Zeiten. Das Try würd' ich etwas abwandeln:
Delphi-Quellcode:
Im Except-Block die gelieferte Fehlermeldung nicht auszuwerten, dafür aber die eigene, vermutete bzw. erwartete Fehlermeldung auszugeben, halte ich nicht zwingend für eine gute Idee. Man kann mit seiner Annahme richtig liegen, muss es aber nicht.
try
TFile.Copy(bild, bild2); except on e : Exception do begin showmessage(e.Message + #13 + bild2 + ' wurde gelöscht, ist aber noch vorhanden !'); end; end; |
AW: Gelöschte Datei immer noch vorhanden?
Lass mal das try - except weg, damit du die Exception im Original angezeigt bekommst.
|
AW: Gelöschte Datei immer noch vorhanden?
Zitat:
|
AW: Gelöschte Datei immer noch vorhanden?
Das passierte bei Bildern ganz gerne mal, wenn der Windows Explorer noch ein Handle für die Vorschau offen hatte. Oder auch bei Virenscannern.
Eigentlich sollte das aber nicht mehr auftreten, denn seit Windows 8 kehrt die Funktion zum Löschen normalerweise erst zurück, wenn das Löschen nicht nur erfolgreich, sondern auch komplett abgeschlossen ist. Warum löschst du eigentlich vorher und gibst nicht einfach als dritten Parameter an TFile.Copy True mit? Denn wenn du direkt angibst, dass die Zieldatei überschrieben werden soll, hast du doch den gleichen Effekt, nur ohne zusätzliches Löschen. |
AW: Gelöschte Datei immer noch vorhanden?
Vielen herzlichen Dank!
Der dritte Parameter war mir gar nicht bewusst, zumal die Codevervollständigung nur die Variante mit 2 Parametern anbietet! Der gepostete Code war "Dummycode", ich fang schon die Exception richtig ab und da bekam ich eben "File already exists" zurück... Das Problem sollte damit gelöst sein! Ciao Stefan |
AW: Gelöschte Datei immer noch vorhanden?
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08: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