![]() |
Datei überprüfen, ob löschbar
Wie kann ich überprüfen, ob eine Datei löschbar ist ohne sie gleich zu löschen?
|
Re: Datei überprüfen, ob löschbar
Es gibt einige Gründe, warum eine Datei nicht gelöscht werden kann:
|
Re: Datei überprüfen, ob löschbar
Ich machs jetzt mit umbenennen..
|
Re: Datei überprüfen, ob löschbar
Sry wegen Doppelpost, aber Jellys Idee ist zwar genial, aber hat einen Hacken: Die Exe ist unbenutztbar... Da sie ständig umbenannt wird...
Und die Date kann man umbenennen, wenn die exe ausgeführt wird... |
Re: Datei überprüfen, ob löschbar
Hallo Fabian,
versuche es mal mit dieser Funktion:
Delphi-Quellcode:
Ich weiß nicht, ob sie alle möglichen Fälle abdeckt. Vielleicht kann das mal einer der WinAPI-Experten prüfen.
function IsFileInUse (const aFileName: string): Boolean;
var hnd : THandle; begin hnd := CreateFile(PChar(aFileName), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hnd = INVALID_HANDLE_VALUE) then Result := True else begin CloseHandle(hnd); Result := False; end; end; Gruß Hawkeye |
Re: Datei überprüfen, ob löschbar
Damit kann man schonmal prüfen ob eine anderes Programm die Datei geöffnet hat, aber alleine dieses hat keine Aussagekraft.
Denn es macht zwar selten wer, aber wenn die Datei mit FILE_SHARE_DELETE geöffnet ist, dann ist es dennoch möglich diese Datei auch zu löschen. IsFileInUse verrsucht die Daei ohne ShareingRechten zu öffnen und dieses geht nur wenn sie noch nicht geöffnet ist. Also das einfachste ist einfach versuchen zu löschen, oder eben umzubennenen (welches man sich als umkopieren und löschen vorstellen kann) Ansonsten muß man schließlich erstmal prüfen ob die Datei existiert. - was nicht da ist, kann nicht gelöscht werden Dann wären die ganzen NTFS-Zugriffsrechte. - hat das Programm überhaupt das Recht die Datei zu löschen Ist die Datei von anderen Programmen geöffnet und wenn ja, haben diese Programme das Löschen erlaubt. Und zum Schluß: ist der Datenträger schreibgeschützt - z.B. bei CDs/DVDs, Disketten, USB-Sticks und andere Wechseldatenträgern |
Re: Datei überprüfen, ob löschbar
Es handelt sich um eine exe, welche man übrigens umbennen kann, aber nicht löschen kann, wenn die Datei läuft!
|
Re: Datei überprüfen, ob löschbar
Zitat:
Hier ist dann sozusagen nur der Dateiihnhalt gesperrt und nicht die Datei selber. Also da kannst du nur versuchen zu löschen, oder du mußt zusätzlich noch in allen Prozessen suchen, ob einer zu dieser Datei gehört. Das Selbe Problem gibt's dann auch bei DLLs und dergleichen. Ist das für 'ne Art Setup-/Updatefunktion? [add] grad eben den Doppelpost gesehn hab :nerd: |
Re: Datei überprüfen, ob löschbar
Zitat:
Ich habe bisher keine Komponente gefunden, die das so macht wie ich will (ich will sie über mein Prog downloaden).. |
DP-Maintenance
Dieses Thema wurde von "SirThornberry" von "Object-Pascal / Delphi-Language" nach "Windows API / MS.NET Framework API" verschoben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 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