![]() |
Dateidatum setzen
Hi,
Eine Textdatei soll geändert werden, ohne dass das Dateidatum geändert wird (primär LastWriteTime) Die Datei wird geladen, das Dateidatum ausgelesen, die Datei wird geändert (durch den User) und danach wieder gespeichert und das alte Dateidatum gesetzt. Leider wird das alte Dateidatum nicht wieder gesetzt. Woran könntest das liegen?
Delphi-Quellcode:
private
FCurFile: string; FModifiedDateTime : TDateTime; FCreationTime : FileTime; FLastAccessTime : FileTime; FLastWriteTime : FileTime;
Delphi-Quellcode:
procedure GetFileDateTime(const TheFile: string; var fCreationTime, fLastAccessTime, fLastWriteTime: FileTime);
var fh : THandle; begin fh := FileOpen(TheFile, fmOpenRead); GetFileTime(fh, @fCreationTime, @fLastAccessTime, @fLastWriteTime); CloseHandle(fh); end; procedure SetFileDateTime(const TheFile: string; fCreationTime, fLastAccessTime, fLastWriteTime: FileTime); var fh : THandle; fn : string; begin fh := FileOpen(TheFile, fmOpenRead); SetFileTime(fh, @fCreationTime, @fLastAccessTime, @fLastWriteTime); CloseHandle(fh); end; // Datei Laden und FileDateTime auslesen procedure TForm1.FileListBox1Click(Sender: TObject); begin FCurFile := FileListBox1.Items[FileListBox1.ItemIndex]; Memo1.Lines.LoadFromFile(FCurFile); GetFileDateTime(FCurFile, fCreationTime, fLastAccessTime, fLastWriteTime); end; // Datei speichern und altes FileDateTime setzen procedure TForm1.btnSaveClick(Sender: TObject); begin if FCurFile <> '' then begin Memo.Lines.SaveToFile(FCurFile); SetFileDateTime(FCurFile, fCreationTime, fLastAccessTime, fLastWriteTime); end; end; |
Re: Dateidatum setzen
Zitat:
was sagt FileOpen, also welchen Wert hat fh und was sagt GetLastError nach FileOpen und SetFileTime? |
Re: Dateidatum setzen
In deiner Funktion SetFileDateTime musst du fmOpenRead durch fmOpenReadWrite oder fmOpenWrite ändern.
|
Re: Dateidatum setzen
Zitat:
aber eigentlich braucht er ja nur FILE_WRITE_ATTRIBUTES, welches hoffentlich in fmOpen...Write enthalten ist. Aber die falschen/fehlenden "Rechte" hätte ihm GetLastError auch mitgeteilt :zwinker: |
Re: Dateidatum setzen
Zitat:
|
Re: Dateidatum setzen
Was denkst du denn, warum ich ihn über die Fehlerbehandlung versuchte an den Fehler heranzuführen?
(vielleicht prägt sich das dann ein und er nutzt es dann öfters mal :roll: ) |
Re: Dateidatum setzen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz