Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
AW: Verzeichnislisting als Baumansicht in StringListe
16. Jul 2012, 11:55
So passt es fast:
Delphi-Quellcode:
procedure TDTListDir.FindFiles(RootFolder: AnsiString; Level: Integer = 0; Mask: AnsiString = '*.*'; Recurse: Boolean = True);
var
SR: TSearchRec;
i: Integer;
Tab: AnsiString;
slFolder: TStringList;
begin
slFolder := TStringList.Create;
slFolder.Delimiter := '\';
slFolder.StrictDelimiter := True;
Inc(Level);
RootFolder := IncludeTrailingPathDelimiter(RootFolder);
if Recurse then
begin
if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
try
repeat
if SR.Attr and faDirectory = faDirectory then
if (SR.Name <> '.') and (SR.Name <> '..') then
begin
FindFiles(RootFolder + SR.Name, Level, Mask, Recurse);
end;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;
if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
try
slFolder.DelimitedText := RootFolder;
Tab := '';
for i := 0 to Level do
Tab := Tab + ' ';
writeln(Tab + slFolder[Level]);
repeat
if SR.Attr and faDirectory <> faDirectory then
begin
sl.Add(Tab + SR.Name + Format('(%d, %s)',
[SR.Size, FormatDateTime('yyyy-mm-dd hh:nn:ss', FileDateToDateTime(SR.Time))]));
end;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
slFolder.Free;
end;
Nur habe ich da Ordner mehrfach drin. Was habe ich über sehen?
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|