Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#63

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 16:35
Also wenn man alles richtig machen möchte, dann sollte man Events als Technik zur Rückgabe der Dateiinformationen einsetzen.
Eine normale StringList ist zu begrenzt, da man im Prinzip nur den Dateinamen bekommt und andere Informationen (Dateigrösse, Flags,...) unter den Tisch fallen.

Zunächst benötigt man einen Record zur Rückgabe der Daten:
Delphi-Quellcode:
TFileInformation = record
  Name : string;
  Path : string;
  IsDir : boolean;
  ReadOnlyFlag, HiddenFlag, SystemFlag : boolean;
  Owner : TOwner;
  Size : Int64;
  ...
end;
Bei jedem gefundenen File oder Directory werden die Infos von TSearchRec auf den "benutzerfreundlichen" Record TFileInformation kopiert und dann ein Event ausgelöst.
"Benutzerfreundlich" heisst hier, dass die Daten im Record TFileInformation so aufbereitet sind, dass man sie bequem und ohne Klimmzüge abgreifen kann.

Das Event sieht so aus:
TFileFindEvent = procedure(Sender:TObject; const FileInformation:TFileInformation) of object; Im Anhang gibt es ein Demoprojekt in dem das Konzept umgesetzt wird.
Bestimmte Dateiattribute (ReadOnlyFlag, Owner, Size nur 32-bit genau) werden z.Zt. noch nicht ausgewertet aber das lässt sich ja leicht nachholen.
Wenn jemand meinen Sourcecode benutzen möchte, dann erwarte ich als Gegenleistung dass das verbessert und auf der DP gepostet wird.

PS: leicht verbesserte Version hochgeladen
Angehängte Dateien
Dateityp: zip filescannerdemoexe_646.zip (193,6 KB, 4x aufgerufen)
Dateityp: zip filescannerdemosource_123.zip (3,8 KB, 5x aufgerufen)
Andreas
  Mit Zitat antworten Zitat