Suche (schnelles) Dateidatum

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

Suche (schnelles) Dateidatum

Beitrag von Agent »

Hallo Community.

Ich bin auf der suche nach einer schnellen Möglichkeit das Dateidatum (bzw. timestamp) zu ermitteln. Bisher habe ich diese Routine benutzt

Code: Alles auswählen

Procedure GetFileDate(file$); - Get the time of a File 
  handle=CreateFile_(@file$,#GENERIC_READ,#FILE_SHARE_READ|#FILE_SHARE_WRITE,0,#OPEN_EXISTING,#FILE_ATTRIBUTE_NORMAL,0) 
  If handle<>#INVALID_HANDLE_VALUE 
    GetFileTime_(handle,0,0,FT.FILETIME) 
    ;Result=FileTimeToDate(FT) 
    CloseHandle_(handle) 
    FileTimeToLocalFileTime_(FT.FILETIME,FT2.FILETIME) 
    FileTimeToSystemTime_(FT2,st.SYSTEMTIME) 
    ProcedureReturn Date(st\wYear,st\wMonth,st\wDay,st\wHour,st\wMinute,st\wSecond)
  Else
    ProcedureReturn 0
  EndIf
EndProcedure 
Sie stammt aus dem Forum bzw. Code-Archiv (bin mir nicht mehr sicher). Leider ist sie recht langsam - zumindest wenn man mal die ganze Festplatte einlesen lässt....
Beispiel: Scan C:
Über die Readdir() - Funktion (CodeArchiv), Nur Name und Größe eingelesen:

ca. 55000 Dateien: 850 ms
zusätzlich Dateidatum über obige Proc: ...abgebrochen nach 30 Sekunden...

Jemand dafür eine Lösung?
ein DirectoryEntrySize und DirectoryEntryAttribute gibts, aber ein DirectoryEntryDate nicht (laut Help) :(
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
horst
Beiträge: 70
Registriert: 08.09.2004 19:33
Wohnort: München
Kontaktdaten:

Re: Suche (schnelles) Dateidatum

Beitrag von horst »

Schau dir mal mein Proggi DelAge32 an (auf meiner Homepage, Windows Abteilung, Command Tools). Source ist dabei.

Das Tool löscht oder verschiebt Dateien (auch in Unterverzeichnissen), und zwar wenn ein bestimmtes Alter (in Tagen) erreicht oder überschritten wird.

Ich verwende dabei die API-Suchfunktionen, weil man da auch Zugriff auf das File-Datum hat (wird bei PB nicht unterstützt, weil 64 bit).

Wenn noch Fragen, email ...
horst
Antworten