Delphi, Ordner löschen mit Inhalt

wenn ich Unterordner im Ordner - dieser code ist nicht Ordner löschen... gibt es da irgendwelche Fehler?

procedure TForm.Remove(Dir: String);
var
  Result: TSearchRec; Found: Boolean;
begin
  Found := False;
  if FindFirst(Dir + '\*', faAnyFile, Result) = 0 then
    while not Found do begin
      if (Result.Attr and faDirectory = faDirectory) AND (Result.Name <> '.') AND (Result.Name <> '..') then Remove(Dir + '\' + Result.Name)
      else if (Result.Attr and faAnyFile <> faDirectory) then DeleteFile(Dir + '\' + Result.Name);
      Found := FindNext(Result) <> 0;
    end;
  FindClose(Result); RemoveDir(Dir);
end;
  • Als ein beiseite, dieser code geschrieben werden kann, mit einer repeat-until-Schleife und somit vermeiden die Notwendigkeit für die Found lokale variable.
  • Auch, es ist ein bisschen komisch, dass Found ist false wenn eine Datei gefunden wurde, und true wenn eine Datei nicht gefunden wurde...
  • Wenn eine der nachfolgenden Antworten dein problem gelöst hat, sollten Sie es akzeptieren, indem Sie auf die Häkchen Links neben der Antwort. Wenn mehr als eine Antwort dein problem gelöst ist, wählen Sie das 'beste' anzunehmen.
  • Einige dups: stackoverflow.com/questions/16336761/..., stackoverflow.com/questions/11798783/...
InformationsquelleAutor Emi | 2011-04-19
Schreibe einen Kommentar