Tech-Ecke / Delphi Inhalt / TSearchRec

 

     TSearchRec

 


 

   Grundlegendes

Mit TSearchRec können Dateinamen und weitere Dateiinformationen eines Verzeichnisses ausgelesen werden. Hier im Beispiel werden alle Dateien eines Verzeichnisses in eine TListBox bzw. TStringlist aufgelistet.


Listet alle Dateien eines Verzeichnisses in ein TStrings - also z.B. TListBox oder TStringList

  procedure GetDir(Pfad: string; FileList: TStrings);
var
   SR: TSearchRec;
begin
   if FindFirst(Pfad + '\*.*', faAnyFile, SR) = 0 then // siehe Optionen
      begin
         repeat
            if (SR.Attr <> faDirectory) then
               begin
                  FileList.Add(SR.Name); // siehe weitere Dateiinformationen
               end;
            until FindNext(SR) <> 0;
            FindClose(SR);
      end;
end;
 

Anwenden:

  ListFileDir('C:\WINDOWS', ListBox1.Items);

// oder

ListFileDir('C:\WINDOWS', MyStringList);
 

Optionen:

Mit '*.*' werde alle Dateien aufgelistet, '*.txt' würde nur Texdateien auflisten.

Weitere Datei-Informationen auslesen:

Name - Datei- bzw. Ordnernamen als String ( SR.Name )
TimeStamp - Änderungsdatum in fileDate -> nach String: s := DateTimeToStr(fileDateToDateTime(Search.Time))
Size - Dateigröße in Byte als Integer Wert (Longint)  -> nach String: s := IntToStr(SR.Size)
Att - Datei Attribut als Integer


Für Ordner (und Dateien):

Listet alle Ordner eines Verzeichnisses in ein TStrings - also z.B. TListBox oder TStringList

  procedure GetDir(Pfad: string; FileList: TStrings);
var
   SR: TSearchRec;
begin
   if FindFirst(Pfad + '\*',
faDirectory, SR) = 0 then // es geht hier auch faAnyFile für Dateien und Ordner
      begin
         repeat
               FileList.Add(SR.Name);
            until FindNext(SR) <> 0;
            FindClose(SR);
      end;
end;
 

 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 09.10.2006]