Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Verzeichnislisting als Baumansicht in StringListe

  Alt 16. Jul 2012, 10: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.
  Mit Zitat antworten Zitat