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?