Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verzeichnis löschen (https://www.delphipraxis.net/37642-verzeichnis-loeschen.html)

smart 8. Jan 2005 11:32


Verzeichnis löschen
 
Mit RemoveDir kann man ein leeres Verzeichnis löschen. Gibt es auch eine Möglichkeit ein volles Verzeichnis zu löschen oder zu verschieben?

Matze 8. Jan 2005 11:35

Re: Verzeichnis löschen
 
Delphi-Quellcode:
function DelDir(dir: string): Boolean;
uses
ShellApi;
...
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;
Hätte dir aber auch die Suche geliefert.

smart 8. Jan 2005 11:42

Re: Verzeichnis löschen
 
Danke! Muss ich wohl übersehen haben.

SirThornberry 8. Jan 2005 12:20

Re: Verzeichnis löschen
 
na toll, und ich hab mir vorgestern erst eine funktion gebaut die rekursiv die ordner und deren inhalt löscht.

smart 8. Jan 2005 15:54

Re: Verzeichnis löschen
 
Also, bei mir löscht der Programmcode DelDir weder ein volles noch einleeres Verzeichnis :(
Aufgerufen mit :deldir('c:\test'); Das gleicher Prob. habe ich auch mit RemoveDir. Ich komme einfach nicht darauf wo der Fehler liegt. Hat von Euch einer ein Tipp?

SirThornberry 8. Jan 2005 16:23

Re: Verzeichnis löschen
 
wird das verzeichnis eventuell zu dem zeitpunkt verwendet (oder dateien daraus)?

Luckie 8. Jan 2005 16:27

Re: Verzeichnis löschen
 
Rpückgabewert von DelDir prüfen und falls False mit SysErrorMessage GetLastError ausgeben lassen.

smart 8. Jan 2005 16:48

Re: Verzeichnis löschen
 
Ich habe eine TForm. Auf der Form habe ich eine DirectoryListBox und ein Button. Das verzeichnis wähle ich mit der DirectoryListBox aus und durch klick auf den Button lösche ich das Verzeichnis.


Code:
uses shellapi;

function deldir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
deldir(DirectoryListBox1.Directory);
DirectoryListBox1.Update;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;
Als Fehler taucht immer 'Zugriff verweigert' auf. Das Verzeichnis ist aber nicht geschützt!

Muetze1 8. Jan 2005 16:53

Re: Verzeichnis löschen
 
Moin!

Doch! Deine DirectoryListBox greift noch drauf zu und wechselt auch den aktuellen Pfad dementsprechend, daher kann dieser nicht gelöscht werden.

MfG
Muetze1

smart 8. Jan 2005 18:33

Re: Verzeichnis löschen
 
Has Recht! Alles Klaro. Vielen Dank an Euch!


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr.
Seite 1 von 2  1 2      

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