Einzelnen Beitrag anzeigen

Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#1

Probleme mit Ordner auflisten

  Alt 21. Mai 2004, 23:49
Also ich habe folgenden Code hier verwendet doch leider hab ich damit einige Probleme. Z.B. werden Ordner mit mehreren Punkten nicht angezeigt und ich hab's immernoch nicht geschafft das Problem zu beheben. Hat jemand ne Ahnung?

Delphi-Quellcode:
procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string =
  '*.*'; Recurse: Boolean = True);

var
  SR: TSearchRec;
begin
  if AnsiLastChar(RootFolder)^ <> '\then
    RootFolder := RootFolder + '\';
  if Recurse then
    if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
    try
      repeat
        if SR.Attr and faDirectory = faDirectory then
            // --> ein Verzeichnis wurde gefunden
            // der Verzeichnisname steht in SR.Name
            // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist
            // RootFolder + SR.Name
          if (SR.Name <> '.') and (SR.Name <> '..') then
            FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse);
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
  try
    repeat
      if SR.Attr and faDirectory <> faDirectory then
      begin
          // --> eine Datei wurde gefunden
          // der Dateiname steht in SR.Name
          // der vollständige Dateiname (inkl. Pfadangabe) ist
          // RootFolder + SR.Name
        FileList.Add(RootFolder + SR.Name);
      end;
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;
end;
Vorhin funktionierte der Aufruf auch aber jetzt hab ich es so versucht und es klappt nicht mehr. Evtl. bin ich einfach zu müde

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var List:TStrings;
begin
  FindAllFiles(List,'c:\WINNT\*.*');
  ListBox1.Items.AddStrings(List);
end;

Falls jemand eine Methode kennt einen ordner wirklich 100% genau aufzulisten wäre ich sehr dankbar...
Christian Reber
  Mit Zitat antworten Zitat