AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ungeordnet, in Reihenfolge Dateien suchen und anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

ungeordnet, in Reihenfolge Dateien suchen und anzeigen

Ein Thema von Nogge · begonnen am 11. Jun 2005 · letzter Beitrag vom 11. Jun 2005
Antwort Antwort
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 12:21
den Link hab ich im Nachhinein erst eingefügt weil er nicht so leicht zu finden ist. Hab die Funktion mal versucht etwas zu optimieren (findallFiles).

Dabei hab ich eine InlineProcedure verwendet damit nicht bei jedem rekursiven Aufruf
"IncludeTrailingPathDelimiter" erneut aufgerufen wird.
Desweiteren hab ich einen weiteren Parameter hinzugefügt mit dem man auch angeben kann ob die
Verzeichnisnamen mit aufgelistet werden (macht ja manchmal sinn wenn man den Ordnerinhalt sehen will, wie im TotalCommander etc.)
In diesem Zusammenhang wird im Property Object auch mit gespeichert ob das Item ein Ordner ist oder nicht. Somit kann man später bei der Darstellung des Inhaltes Ordner und Dateien verschieden kennzeischnen.

Delphi-Quellcode:
procedure FindAllFiles(FileList: TStrings; RootFolder: string; Mask: string ='*'; Recurse: Boolean = True; AddFolderNames: Boolean = False);
  procedure LFindAllFiles(AParentFolder: String);
  var LSearchRec: TSearchRec;
  begin
    if FindFirst(AParentFolder + '*', faAnyFile, LSearchRec) = 0 then
    begin
      repeat
        if (LSearchRec.Name <> '.') and (LSearchRec.Name <> '..') then
        begin
          if LSearchRec.Attr and faDirectory = faDirectory then
          begin
            if AddFolderNames and Like(Mask, AnsiLowerCase(LSearchRec.Name)) then
              FileList.AddObject(AParentFolder + LSearchRec.Name, TObject(True));
            if Recurse then
              FindAllFiles(FileList, AParentFolder + LSearchRec.Name + '\');
          end
          else if Like(Mask, AnsiLowerCase(LSearchRec.Name)) then
            FileList.AddObject(AParentFolder + LSearchRec.Name, TObject(False));
        end;
      until FindNext(LSearchRec) <> 0;
      FindClose(LSearchRec);
    end;
  end;
begin
  Mask := AnsiLowerCase(Mask);
  LFindAllFiles(IncludeTrailingPathDelimiter(RootFolder));
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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 by Thomas Breitkreuz