![]() |
removedir funzt nicht
wie der Titel schon sagt:
Ich verwende den folgenden Code:
Delphi-Quellcode:
dirs[i] existiert (mit [showmessage] und [if directoryexists then showmessage] überprüft)
if not removedir(dirs[i]) then
raise exception.Create('Fehler beim Löschen.'); Ich verwende diesen Befehl in einer selbsterstellten Unit, die folgendes in den Uses stehen hat:
Delphi-Quellcode:
Forms und dialogs nur temporär für application.processmessage und showmessage.
uses
filectrl, dialogs, classes, sysutils, forms; Es wird immer eine Exception ausgelöst. An was könnte das liegen? :gruebel: |
Re: removedir funzt nicht
Hi,
"funzt nicht" ist immer so aussagekräftig... :roll: Aber ich gehe mal davon aus, dass die von dir gepostete Exception geraiset wird. Dann schau dich mal um und gucke in welchem Fall RemoveDir false zurückliefert. Unter Umständen fehlt ein abschließender Backslash (\) oder sowas in der Art. Chris |
Re: removedir funzt nicht
ja, meine exception wird ausgelöst. Dateien sind auch nicht drin, auch keine versteckten. Ich such jetzt schon seid 3 Stunden...
|
Re: removedir funzt nicht
Hallo ichbins :hi:
kann es sein, dass dein Verzeichnis nicht leer ist? mfg Christian |
Re: removedir funzt nicht
Hi,
hast Du schon mit ![]() mfG mirage228 |
Re: removedir funzt nicht
hi,
@r2c2 hab ich mir auch zuerst gedacht. Dann habe ich ein neues erstellt und bei dem kommt der Fehler auch. Ich verwende den Code in einer Proc, die alle Dateien und Ordner in einem Root sucht und zuerst die Dateien und dann die Ordner löscht... @mirage mit filehandels kenn ich mich nich so aus. Ich kann eigentlich nur mit file-of-typen und textfiles umgehen :oops: Können die Handels denn überhaupt auf Ordner zugreifen? |
Re: removedir funzt nicht
Evtl. verstecke Dateien? (faHidden)
air |
Re: removedir funzt nicht
ne, ich hab keine versteckten Dateien, es sei denn von Windows automatisch erstellte dinger wie thumbs.db, der Ordner is ja ganz neu... ne, auch keine versteckte systemdatei
gibts noch andere procs, die einen Ordner löschen können? ich probier mal shfileoperation |
Re: removedir funzt nicht
Zitat:
Du brauchst kein Datei-Handle zu übergeben, sondern lediglich das Fensterhandle (damit SHFileOperation weiss, zu welchem Fenster die angezeigt Fortschrittsanzeige gehören soll u.A.). Dann lediglich das Verzeichnis als Quelldatei angeben und dann als Operation FO_DELTE wählen und dann gehts schon los. mfG mirage228 |
Re: removedir funzt nicht
:oops:
probiers mal... |
Re: removedir funzt nicht
ne, wenn ich es so mach, kommt die Windows-Meldung: "soll der Ordner wirklich gelöscht werden?"
Aber ich bin gerade dabei, eine Vollautomatische Prog zum Löschen von Verzeichnissbäumen zu schreiben, da passt das nicht aber das ding is super! so was hab ich schon immer gesucht! |
Re: removedir funzt nicht
@ichbins: aus Sicht von RemoveDir() ist ein Ordner nur dann leer, wenn er weder Dateien, noch Unterordner enthält.
Grüße vom marabu |
Re: removedir funzt nicht
enthält er ja :cry: ich lösche zuerst die Dateien, dann die Ordner untersten levels, bis schließlich zum root-ordner.
|
Re: removedir funzt nicht
Zitat:
mfG mirage228 |
Re: removedir funzt nicht
wenn ich bestätige, kommt die Meldung: "Die Datei wird gerade von einer anderen Person bzw. einem anderen Programm verwendet. Bitte versuchen sie es später nochmals..." von was kann ein Ordner denn verwendet werden?
|
Re: removedir funzt nicht
Vom Windows Explorer. Versuche mal folgendes: lösche einen Unterordner mit der Hand und versuche anschließend den übergeordneten Ordner - der jetzt leer sein sollte - auch mit der Hand zu löschen. Die Fehlermeldung sollte der ähneln, die dein Programm hier liefert:
Delphi-Quellcode:
marabu
if not RemoveDir(dir) then
ShowMessage(SysErrorMessage(GetLastError)); |
Re: removedir funzt nicht
Hi,
kann es sein, dass du mit deinem eigenen Programm noch auf eine Datei in diesem Ordner zugreifst? Chris |
Re: removedir funzt nicht
Hallo Chris, du darfst es natürlich auch probieren. Wenn du XP oder neuer fährst und du kannst einen tree im file system von den leafs her manuell abräumen, dann - nun ja, ich habe hier einen leckeren Besen stehen...
Grüße vom marabu |
Re: removedir funzt nicht
Hi,
ich kann dir zwar nicht ganz folgen, kann aber derzeit das auch nicht ausprobieren (reite gerade auf einem Tiger durch's Netz ;)). Ich denke aber eher, dass er noch irgendwo eine Datei nicht geschlossen hat oder so. Mal sehen, was er selber dazu sagt. Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 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