Einzelnen Beitrag anzeigen

vollmer-net
(Gast)

n/a Beiträge
 
#1

Dateien in Verzeichnissen per UNC löschen!

  Alt 16. Sep 2004, 09:01
Hi,

wie kann ich alle Dateien in einem Verzeichnis per UNC löschen...ich habs momemtan so gelöst...geht das?

Delphi-Quellcode:
Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean);
Var
  FindRec: tSearchRec;
Begin
  // Wenn die Stringliste nil ist oder aPath oder aFind nicht angegeben ist
  // dann raus
  If (aPath = '') or (aFindMask = '') Then
    Exit;

  // Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen
  If aPath[Length (aPath)] <> '\Then
    aPath := aPath + '\';

  // Im aktuellen Verzeichnis nach der Datei suchen
  If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // ...Ergebnis in die Stringlist einfügen
        DeleteFile('\\?\'+aPath + FindRec.Name);
    Until FindNext (FindRec) <> 0;

  FindClose (FindRec);

  // Wenn nicht in Unterverzeichnissen gesucht werden soll dann raus
  If Not aWithSub Then
    Exit;

  // In Unterverzeichnissen weiter suchen
  If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // Feststellen, ob es sich um ein Verzeichnis handelt
        If Boolean (FindRec.Attr and faDirectory) Then
          // Funktion erneut aufrufen, um Verzeichnis zu durchsuchen (Rekursion)
          FindFiles (aPath + FindRec.Name, aFindMask, aWithSub);
    Until FindNext (FindRec) <> 0;

   FindClose (FindRec);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin

FindFiles ('c:\programme\programmxy\temp', '*.*', True);

end;
Gruß

Alex
  Mit Zitat antworten Zitat