Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

Probleme beim Löschen eines Ordners

  Alt 14. Nov 2004, 14:08
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
  Mit Zitat antworten Zitat