Hallo,
ich brauch dringenst eure Hilfe. Ich renn dauernd gegen die Wand
Ich will mit "deleteDir" einen
Ordner löschen.
Das geht auch, aber nur wenn der
Ordner nie einen Inhalt hatte.
Wenn der
Ordner zuvor einen Inhalt hatte (bei mir nur immer eine Datei - die ich vor dem Löschen des Ordners gelöscht hab), dann gibt mir deleteDir immer ein false zurück.
Über FindFirst, FindNext hab ich mal diesen
Ordner durchsuchen lassen und hab rausgefunden, dass folgende "Dateien" noch im
Ordner vorhanden sind: ".", ".." und "thumbs.db".
Wenn ich aber in den Windows-Explorer schau, dann sagt der dass der
ordner leer ist (0 Elemente).
Wie kann ich also diesen
Ordner löschen?
hier mal ein wenig Code (aus meinem Test-Programm):
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
CheckBox1.Checked := RemoveDir(Edit1.Text);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
CheckBox2.Checked := deleteFile(Edit2.Text);
Button1.Enabled := CheckBox2.Checked;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
sr: TSearchRec;
FileAttrs: Integer;
begin
FileAttrs := 0;
FileAttrs := FileAttrs + faHidden;
FileAttrs := FileAttrs + faSysFile;
FileAttrs := FileAttrs + faVolumeID;
FileAttrs := FileAttrs + faDirectory;
FileAttrs := FileAttrs + faArchive;
FileAttrs := FileAttrs + faAnyFile;
If FindFirst(Edit1.Text + '\*.*', FileAttrs, sr) = 0 then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
showmessage(sr.Name);
showmessage(IntToStr(ord(deletefile(sr.Name))));
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
Button1 ist enabled = false
CheckBox1 und 2 dienen nur als anzeige ob true oder falsch
ach ja, thumbs.db lässt sich nicht löschen (siehe repeat-schleife)
mfg
Helmi