Delphi 6: Wie kann ich das erstellte Filedate ändern (= Dateierstellungsdatum)

8

Ich habe jetzt nach Stunden auf Google (und hier) gesucht.

Und ich kann keine Lösung finden.

Ich möchte CHANGE in DELPHI 6 die Created Dateizeit (= Erstellungsdateizeit) ändern.

Nicht die "Modified File Time" (für die ein einfacher Aufruf von "FileSetDate ()" benötigt wird) und nicht die "Zuletzt abgerufene Dateizeit".

Wie mache ich das?

    
user1089764 09.12.2011, 13:32
quelle

2 Antworten

6

Rufen Sie SetFileTime auf Windows-API-Funktion Übergeben Sie nil für lpLastAccessTime und lpLastWriteTime , wenn Sie nur die Erstellungszeit ändern möchten.

Sie müssen ein Datei-Handle erhalten, indem Sie CreateFile oder einer der Delphi-Wrapper, daher ist dies nicht die bequemste zu verwendende API.

Machen Sie sich das Leben leichter, indem Sie den API-Aufruf in eine Hilfsfunktion einschließen, die den Dateinamen und ein TDateTime erhält. Diese Funktion sollte die Low-Level-Details zum Abrufen und Schließen eines Datei-Handle verwalten und das TDateTime in ein FILETIME konvertieren.

Ich würde es so machen:

%Vor%

Ich musste die Deklaration von FILE_WRITE_ATTRIBUTES hinzufügen, weil sie in der Delphi 6 Windows Einheit nicht vorhanden ist.

    
David Heffernan 09.12.2011, 13:44
quelle
7

Basierend auf FileSetDate können Sie eine ähnliche Routine schreiben:

%Vor%     
Ondrej Kelle 09.12.2011 13:41
quelle

Tags und Links