Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi leeren Ordner mit RemoveDir löschen (https://www.delphipraxis.net/59824-leeren-ordner-mit-removedir-loeschen.html)

maximus Caesar 29. Dez 2005 08:45


leeren Ordner mit RemoveDir löschen
 
Hallo!
Ich habe einen Ordner in meinem Startmenü (Start->Alle Programme) den ich mit RemoveDir löschen möchte.
Ich mache das so:
Ordner Leeren:
Delphi-Quellcode:
procedure TForm1.AlleDateienlöschen(Pfad:String);
var i:Integer;
begin
  FileListBox1.Directory:=Pfad;
  if FileListBox1.Items.Count>0 then begin
    for i:=0 to FileListBox1.Items.Count-1 do begin
      DeleteFile(Pfad+'\'+FileListBox1.Items[0]);
      FileListBox1.Update;
    end;
  end;
end;
Ordner finden:
Delphi-Quellcode:
function TForm1.GetStartmenuePath: String;
var LPidl: PItemIDList;
    LPath: Array[0..MAX_PATH] of Char;
begin
  if SUCCEEDED(SHGetSpecialFolderLocation(0, CSIDL_STARTMENU, LPidl)) then
  begin
    SHGetPathFromIDList(LPidl, @LPath);
    result := String(LPath);
  end else
    result := '';
end;
Pfad stimmt, Ordner ist leer.

So wird er gelöscht:

Delphi-Quellcode:
procedure TForm1.frdenaktuellenBenutzerentfernen1Click(Sender: TObject);
var Ordner:String;
    a:Integer;
begin
  Ordner:=GetStartMenuePath;
  DirectoryListBox1.Directory:=Ordner;
  a:=DirectoryListBox1.Items.Count-1;
  Ordner:=DirectoryListBox1.GetItemPath(a);
  Ordner:=Ordner+'\Geburtstagskalender';
  AlleDateienLöschen(Ordner);
  Showmessage(Ordner+'\');
  if (RemoveDir(Ordner+'\')) then MessageDLG('Ordner erfolgreich gelöscht',mtInformation,[mbOK],0)
  else MessageDLG('Ordner konnte nicht gelöscht werden!',mtWarning,[mbOK],0);
end;
Obwohl der Ordner leer ist, wird er nicht gelöscht.
Woran kann das liegen?

jim_raynor 29. Dez 2005 09:13

Re: leeren Ordner mit RemoveDir löschen
 
Vielleicht solltest du den Backslash bei RemoveDir wegmachen.

maximus Caesar 29. Dez 2005 09:20

Re: leeren Ordner mit RemoveDir löschen
 
HAb ich als erstes gehabt, da hats auch net funktioniert.
Dann hab ich den Backslash hinzugefügt, dannach hats genau ein mal funktioniert....

Edit: habs grad nochmal ohne probiert, bring aber nichts.
Wie gesagt, der Ordner wird geleert, aber nicht gelöscht

maximus Caesar 29. Dez 2005 10:39

Re: leeren Ordner mit RemoveDir löschen
 
Hat jemand ne Idee?

smart 29. Dez 2005 10:48

Re: leeren Ordner mit RemoveDir löschen
 
Zitat:

Zitat von maximus Caesar
Hat jemand ne Idee?

Kann es sein, dass Du eine Datei in Deinem Programm noch nicht geschlossen hast? Wenn das mit dem löschen nicht geht, ist meist noch wo ein Zugriff auf Datei oder Verzeichniss. Schau mal nach.

maximus Caesar 29. Dez 2005 11:04

Re: leeren Ordner mit RemoveDir löschen
 
habs grad gefunden.
Es liegt an der Prozedur zum Datei Löschen.
ICh hab jetzt einfach hinzugefügt, das wenn alle dateien gelöscht sind, das Verzeichnis auf das des Programmes selber gestellt wird.
Jetzt funzt alles!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 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