Delphi-PRAXiS
Seite 1 von 3  1 23      

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

qb-tim 26. Mai 2006 15:58


Einen Ordner komplett löschen
 
Delphi-Quellcode:
RemoveDir(Ordner)
Das ist der Befehl einen Ordner zu löschen - dies geht aber nur, wenn der Ordner leer ist... :?

Wie lösche ich ALLE sich in dem Ordner befindenden Dateien UND Ordner auch?

Hawkeye219 26. Mai 2006 16:22

Re: Einen Ordner komplett löschen
 
Hallo,

du könntest es so machen, wie es in diesem Thread beschrieben wird.

Gruß Hawkeye

SirThornberry 26. Mai 2006 16:25

Re: Einen Ordner komplett löschen
 
hier noch eine Variante:
Delphi-Quellcode:
procedure DeleteFiles(FilenameMask: String);
var LRec: TSearchRec;
    LPath: String;
begin
  if FindFirst(FilenameMask, faAnyFile, LRec) = 0 then
  begin
    LPath := ExtractFilePath(FilenameMask);
    repeat
      if (LRec.Name <> '.') and (LRec.Name <> '..') then
        DeleteFile(LPath + LRec.Name);
    until FindNext(LRec) <> 0;
  end;
  FindClose(LRec);
end;

function DeleteDirectory(ADirName: String): Boolean;
var LRec: TSearchRec;
begin
  DeleteFiles(ADirName + '\*');
  if FindFirst(ADirName + '\*', faDirectory + faHidden + faSysFile, LRec) = 0 then
  begin
    repeat
      if (copy(LRec.name, 1, 1) <> '.') and DirectoryExists(ADirName + '\' + LRec.Name) then
        DeleteDirectory(ADirName + '\' + LRec.Name);
    until FindNext(LRec) <> 0;
  end;
  FindClose(LRec);
  Result := RemoveDir(ADirName)
end;

himitsu 26. Mai 2006 16:30

Re: Einen Ordner komplett löschen
 
Oder mit Hier im Forum suchenSHFileOperation, obwohl ich es auch gern selber mache (wie oben beschrieben), denn da kann man notfalls auch mal etwas mehr Einfluß (z.B. 'ne genauere FehlerMeldung ausgeben, also auch mal an wlcher Datei es ganz genau hängt).

qb-tim 26. Mai 2006 17:00

Re: Einen Ordner komplett löschen
 
@ SirThornberry

Ich blicke leider nicht durch. :wiejetzt:

Nehmen wir an ich möchte den Ordner "C:\test" mitsamt den Inhalt löschen.

Wie wende ich dann deine Prozeduren in einer OnClick prozedur an?

SirThornberry 26. Mai 2006 17:05

Re: Einen Ordner komplett löschen
 
Dann musst du die Funktion DeleteDirectory aufrufen:
Delphi-Quellcode:
DeleteDirectory('c:\test');

qb-tim 26. Mai 2006 17:16

Re: Einen Ordner komplett löschen
 
[Fehler] Unit3.pas(129): Undefinierter Bezeichner: 'DeleteDirectory'

Klaus01 26. Mai 2006 17:26

Re: Einen Ordner komplett löschen
 
Wo hast denn Du die Prozeduren hingeschrieben.

Hast Du sie als Methode der Form zugewiesen? Das ist nicht nötig.

Grüße
Klaus

qb-tim 26. Mai 2006 17:29

Re: Einen Ordner komplett löschen
 
Ich habe Sie mit allen anderen Prozeduren (wie FormActivate oder ButtonClick)

Ich habe nichts anderes getan, als den Quellentext von SirThornberry und eine Zeile in einer OnClick prozedur hinzugefügt.

Klaus01 26. Mai 2006 17:32

Re: Einen Ordner komplett löschen
 
.. und steht diese OnClick Methode vor oder hinter den eingefügten Prozeduren?
Sie (die OnClick Methode) sollte dahinter stehen.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr.
Seite 1 von 3  1 23      

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