Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Dateien / Laufwerke (https://www.delphipraxis.net/41-library-dateien-laufwerke/)
-   -   Delphi Leere Verzeichnisse auflisten (https://www.delphipraxis.net/37947-leere-verzeichnisse-auflisten.html)

Matze 12. Jan 2005 17:20


Leere Verzeichnisse auflisten
 
Mit folgender Funktion von SirThornberry, die er hier veröffentlicht hat, kann man alle leeren Verzeichnisse eines Laufwerks auflisten:

Delphi-Quellcode:
procedure GetFileEmptyDirs(AStartDir: String; ADestList: TStrings);
  function LGetFileEmptyDirs(LDir: String; LDestList: TStrings): Boolean;
  var LSRec: TSearchRec;
      LHasFiles, LFilesInFolder: Boolean;
      LEmptyDirs: TStringlist;
  begin
    //erstmal schauen ob wir dateien haben (wenn ja müssen wir eventuell ordner hinzufügen)
    LHasFiles := False;
    if FindFirst(LDir + '\*', faAnyFile, LSRec) = 0 then
    begin
      repeat
        if not(faDirectory and LSRec.Attr <> 0) then
          LHasFiles := True;
      until (FindNext(LSRec) <> 0) or (LHasFiles);
    end;
    FindClose(LSRec);
    //jetzt alle unterordner durchgehen
    LEmptyDirs := TStringList.Create;
    if FindFirst(LDir + '\*', faAnyFile, LSRec) = 0 then
    begin
      repeat
        if (faDirectory and LSRec.Attr <> 0) and (LSRec.Name <> '.') and (LSRec.Name <> '..') then
        begin
          LFilesInFolder := LGetFileEmptyDirs(LDir + '\' + LSRec.Name, ADestList);
          if LFilesInFolder then
            LHasFiles := True
          else
            LEmptyDirs.Add(LDir + '\' + LSRec.Name);
        end;
      until (FindNext(LSRec) <> 0);
    end;
    FindClose(LSRec);
    if LHasFiles then
      ADestList.AddStrings(LEmptyDirs);
    LEmptyDirs.Free;
    //funktion verlassen und mitteilen ob wir dateien in Ordner haben
    result := LHasFiles;
  end;
begin
  ADestList.Clear;
  if LGetFileEmptyDirs(AStartDir, ADestList) = False then
    ADestList.Add(AStartDir);
end;
Beispielaufruf um alle Datei-Leeren Verzeichnisse von Laufwerk C aufzulisten:

Delphi-Quellcode:
var LList: TStringList;
begin
  LList := TStringList.Create;
  GetFileEmptyDirs('c:', LList);
  Memo1.Lines.Assign(LList);
  LList.Free;
end;
Weitere Suchbegriffe: Ordner Verzeichnis ermitteln


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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