(Gast)
n/a Beiträge
|
Re: Probs mit TString und Treeview
6. Jul 2003, 20:02
Hallo,
oder mit leicht verkürztem Kopf und Pfad und Dateiendung werden hintereinader eingegeben, also von der Reihenfolge der Parameter her. Was evtl. etwas "schöner" ist.
Delphi-Quellcode:
procedure GetFiles(const Directory, FileMask: String; Files: TStrings; SubFolders: Boolean);
//Hilfsfunktion, um Schrägstriche hinzuzfügen, wenn nötig
function SlashSep(const Path, S: string): string;
begin
if AnsiLastChar(Path)^ <> '\' then Result := Path + '\' + S
else Result := Path + S;
end;
var SearchRec: TSearchRec;
nStatus: Integer;
begin
//Zuerst alle Dateien im aktuelle Verzeichnis finden
if FindFirst(SlashSep(Directory, FileMask), faAnyFile-faDirectory-faVolumeID,
SearchRec) = 0 then
begin
try
repeat
Files.Add(SlashSep(Directory, SearchRec.Name));
until FindNext(SearchRec) <> 0;
finally
SysUtils.FindClose(SearchRec);
end;
end;
//Als nächstes nach Unterverzeichnissen suchen und, wenn benötigt, durchsuchen
if SubFolders then
begin
if FindFirst(SlashSep(Directory,'*.*'), faAnyFile, SearchRec) = 0 then
begin
try
repeat
//Wenn es ein Verzeichnis ist, Rekursion verwenden
if (SearchRec.Attr and faDirectory) <> 0 then
begin
if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
GetFiles(SlashSep(Directory, SearchRec.Name), FileMask, Files, SubFolders);
end;
until FindNext(SearchRec) <> 0;
finally
SysUtils.FindClose(SearchRec);
end;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetFiles('C:\', '*.jpg*', Memo1.Lines, False);
end;
Grüsse, Daniel
|
|
Zitat
|