Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datei-Timestamps an andere Datei übertragen (https://www.delphipraxis.net/190546-datei-timestamps-andere-datei-uebertragen.html)

Jim Carrey 14. Okt 2016 14:45

Datei-Timestamps an andere Datei übertragen
 
Wie man Dateiattribute an eine andere Datei überträgt, habe ich herausgefunden. Das war auch nicht sonderlich kompliziert.

Komplizierter ist es jetzt für mich, die Timestamps einer Datei an eine andere zu übergeben.
Da frage ich mich eh... was kann übergeben werden? Letzter Zugriff und Geändert, oder?
Ich habe es mit
Delphi-Quellcode:
FileSetDate(DateiA, FileAge(DateiB));
versucht, aber das überträgt nur Letzter Zugriff.

Gibt es hier überhaupt eine Möglichkeit das zu realisieren?

Uwe Raabe 14. Okt 2016 14:48

AW: Datei-Timestamps an andere Datei übertragen
 
Unter System.IOUtils findet man

Delphi-Quellcode:
TFile.SetCreationTime
TFile.SetLastAccessTime
TFile.SetLastWriteTime

Jim Carrey 14. Okt 2016 15:44

AW: Datei-Timestamps an andere Datei übertragen
 
Danke für die schnelle Antwort!
Dass das so einfach ist, hätte ich nicht gedacht.

Ich lese immer wieder dass es manche Funktionen gibt, die die zu bearbeitende nicht nicht öffnen.

Öffnen die IOUtils die Zieldatei oder funktioniert das auch anders?

Uwe Raabe 14. Okt 2016 16:41

AW: Datei-Timestamps an andere Datei übertragen
 
Intern wird die Windows-Funktion SetFileTime verwendet, die allerdings ein gültiges Filehandle braucht.

Andererseits macht es auch keinen Sinn, den LastAccess oder LastWrite zu setzen, während die Datei noch anderweitig offen ist, oder?

Jim Carrey 14. Okt 2016 16:42

AW: Datei-Timestamps an andere Datei übertragen
 
Zitat:

Andererseits macht es auch keinen Sinn, den LastAccess oder LastWrite zu setzen, während die Datei noch anderweitig offen ist, oder?
Du hast mich gerade mit deinem Schwert erschlagen und mir die gerechte Strafe für meine dumme Frage gegeben.

DeddyH 14. Okt 2016 20:33

AW: Datei-Timestamps an andere Datei übertragen
 
Jeder bitte äußerst links gehen und nur ein Schwert nehmen :mrgreen:

himitsu 14. Okt 2016 21:49

AW: Datei-Timestamps an andere Datei übertragen
 
Aber das nötige FileHandle muß auch "nur" das FILE_WRITE_ATTRIBUTES-Recht besitzen.
Also ist wie mit einem Lesezugriff ... solange kein anderer Zugreifer das nötige Recht verbietet, kann man auch ein neues Handle auf diese Datei bekommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz