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...