Einzelnen Beitrag anzeigen

Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#19

Re: Alle Dateien eines Verzeichnisses löschen ?!?

  Alt 23. Aug 2003, 23:13
Hallo Marlno!

Zitat von Marlno:
nur doof ist das jetzt nicht immer eins höher ist sondern 2 höher im result beim aufruf *.*
naja egal wenn verzeichnisse drin wären würde ich es verstehen denn die zählt er ja auch mit aber es sind keine drin und auch keine versteckten oder system files oder sonstiges....
Natürlich hast Du im Verzeichnis 2 Unterverzeichnisse - die heißen '.' und '..'! Probier mal in der DOS-Eingabeaufforderung DIR aus - da siehst Du es (außer im Hauptverzeichnis der Platte).
Bei dem geposteten Code werden die 'gelöscht' (das geht nicht, DeleteFile löscht nur Dateien, für leere Verzeichnisse ist RemoveDir zuständig).

Folgendes sollte klappen:
Delphi-Quellcode:
Function DeleteAll(Dir, Files : string): Integer;

var
  SearchRec : TSearchRec;

begin
  Result := 0;
  if FindFirst(Dir+Files, faAnyFile, SearchRec) = 0 then begin
    try
      repeat
        if (SearchRec.Attr and faDirectory) <> faDirectory then //einfügen
        begin //einfügen
          DeleteFile(Dir+SearchRec.Name);
          inc(Result);
        end; //einfügen
      until FindNext(SearchRec) <> 0;
    finally
      FindClose(SearchRec);
    end;
  end;
end;
Dann werden nur Dateien gelöscht, die keine Directorys sind. Nach dem neu einzufügenden "end" kannst Du auch noch, wenn der Namen ungleich '.' und ungleich '..' ist, die Funktion rekursiv aufrufen, um Unterdirs zu löschen! Nach dem Löschen der Dateien kannst Du ja Removedir versuchen.

Gruß

Dietmar Brüggendiek
Edit: warum geht im Delphi-Source kein Color??
Dietmar Brüggendiek
  Mit Zitat antworten Zitat