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