Hallo,
die 2 Stunden Zeitunterschied kommen daher, dass die Zeiten in UTC gespeichert werden. Das ist ja auch sinnvoll wenn man z.B. Dateien in verschieden Zeitzonen miteinander vergleichen will. Mit der Funktion _Date_Time_FileTimeToLocalFileTime kann man sie in die Lokale Zeit konvertieren.
Wenn du eine Datei immer nur zwischen gleichen Dateisystemen kopierst, sollte die Modified-Zeit immer die gleiche sein, solange die Datei nicht verändert wurde.
Problematisch ist es wenn es sich um unterschiedliche Dateisysteme handelt. Bei FAT (FAT32, exFAT ...) hat die Modified-Zeit nur eine Genauigkeit von 2 Sekunden. das heisst wenn die Zeit in NTFS z.B. 21:14:40.624 ist dann ist die Zeit in FAT 21:14:42.000. Es wird also immer auf die nächsten 2 Sekunden aufgerundet.
Richtig Interessant wird es wenn dann noch ein Dateisystem dazukommt, das zwichen Groß- und Kleinschreibung unterscheidet.