Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ordner löschen? (https://www.delphipraxis.net/95361-ordner-loeschen.html)

gandime 5. Jul 2007 14:58


Ordner löschen?
 
Hi,
diese Frage hört sich zwar banal an aber ich finde es nicht heraus wie ich in Delphi einen leeren Ordner lösche...
ichh abs bei mit der Forumsuche versucht, bei google und bei der Delphi-Hilfe, wo ich das gefunden habe:
Delphi-Quellcode:
DeleteFolder(folderPath)
welches bei mir aber auch nicht geht!
Brauche ich dafür vlt nen uses? stand nicht in der Hilfe oder bei Google

Hilfe...

mfg
gandime

GroHae 5. Jul 2007 15:01

Re: Ordner löschen?
 
RemoveDir oder?

gandime 5. Jul 2007 15:04

Re: Ordner löschen?
 
jop genau das habe ich gesucht aber leider nicht gefunden danke :-)

Christian Seehase 5. Jul 2007 16:07

Re: Ordner löschen?
 
Moin Gandime,

das sollte auch mit einem Hier im Forum suchenSHFileOperation-Aufruf funktionieren.
Damit sollte man dann auch einen Ordner in den Papierkorb verschieben können.

shmia 5. Jul 2007 17:39

Re: Ordner löschen?
 
Zitat:

Zitat von gandime
jop genau das habe ich gesucht aber leider nicht gefunden

Da gibt's einen einfachen Trick:
du kennst doch sicher DeleteFile(), oder?
Im Sourcecode hinschreiben und F1 drücken; die Hilfe zu DeleteFile erscheint.
Dort findet sich dann ein Hyperlink auf "file management routines" und von dort ist es nicht mehr weit zu RemoveDir.
Eigentlich ganz einfach...

Luke_83 5. Jul 2007 19:15

Re: Ordner löschen?
 
Ergänzende Frage : Gibt es auch eine Möglichkeit Ordner zu löschen in denen sich Dateien und Unterordner befinden.

RemoveDir(Path) funktioniert ja nur bei leeren Ordnern.

fwsp 5. Jul 2007 19:24

Re: Ordner löschen?
 
Zitat:

Zitat von Luke_83
Ergänzende Frage : Gibt es auch eine Möglichkeit Ordner zu löschen in denen sich Dateien und Unterordner befinden.

muss man das vllt auch wie das auflisten von dateien machen? rekursiv durch alle ordner?
in php muss man das auch so machen :stupid:

scrat1979 5. Jul 2007 21:47

Re: Ordner löschen?
 
Zitat:

Zitat von Luke_83
Ergänzende Frage : Gibt es auch eine Möglichkeit Ordner zu löschen in denen sich Dateien und Unterordner befinden.

RemoveDir(Path) funktioniert ja nur bei leeren Ordnern.

Wie schon angedeutet wurde, würde ich mir alle Dateien (inkl. in den Unterordnern) auflisten (Stichwort Rekursive Suche, Suchfunktion liefert massenweise Ergebnisse :-)).
Speichere alle Verzeichnisse (kannst diese aus den Dateinamen aus der rekursiven Funktion bekommen...) in eine StringList und lösche dann die Dateien (zB. schon in der Funktion).
Danach die StringListe durchgehen und RmDir(Liste[Index]) von 0 bis (Liste.Count-1) durchlaufen. Voila!

Ohne Exception-Handling ganz einfach zu machen. Beachte aber auch, daß evtl. Dateien geöffnet sein könnten und somit nicht zum löschen freigegeben sind....

SCRaT

//EDIT: Könnte sein, daß es mit SHFileOperation auch einfacher funktioniert...

cruiser 5. Jul 2007 22:18

Re: Ordner löschen?
 
Hier mal ein Schnipselchen dazu:

löscht Dateien und Verzeichnisse (incl. Subdirs)

Delphi-Quellcode:
function RM(FileName: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  FileName := ExcludeTrailingPathDelimiter(FileName);
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION; // für Fehlermeldungen FOF_NOCONFIRMATION weglassen
    pFrom := PChar(FileName + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz