Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateien in Verzeichnissen per UNC löschen! (https://www.delphipraxis.net/29889-dateien-verzeichnissen-per-unc-loeschen.html)

vollmer-net 16. Sep 2004 08:01


Dateien in Verzeichnissen per UNC löschen!
 
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

himitsu 16. Sep 2004 08:07

Re: Dateien in Verzeichnissen per UNC löschen!
 
Also ich hab soein Problem ähnlich gelöst und so, wie ich das sehe, sollte es gehn.

PS: der Name "FindFiles" ist wohl ein bissl irritierend ... versuchs mal z.B. mit "DeleteFiles" :zwinker:

Christian Seehase 16. Sep 2004 16:43

Re: Dateien in Verzeichnissen per UNC löschen!
 
Moin Alex,

schau Dir mal die Funktion MSDN-Library durchsuchenSHFileOperation an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz