Hallo zusammen!
Ich bin grade dabei, eine Funktion zu schreiben, die die Attribute und Zeitstempel einer Datei auf eine andere zuvor kopierte Datei überträgt, so dass ich danach zwei identische Dateien habe, inklusiver aller Zeitstempel.
Allerdings gibt es Probleme damit, nach dem Kopieren ist nur das letzte Änderungsdatum und die Attribute gleich, der Rest funktioniert irgendwie nicht!
Hier ist der Code:
Delphi-Quellcode:
function TForm1.transferdateiinfos(source,destination: widestring): boolean;
var
hFind_s, hFind_d: THandle;
FindFileData_s, FindFileData_d: WIN32_FIND_DATAW;
begin
result := false;
if source[length(source)] = '\' then setlength(source,length(source)-1);
if destination[length(destination)] = '\' then setlength(destination,length(destination)-1);
hFind_s := FindFirstFileW(PWideChar(source),FindFileData_s);
hFind_d := FindFirstFileW(PWideChar(destination),FindFileData_d);
if (hFind_s <> INVALID_HANDLE_VALUE) and (hFind_d <> INVALID_HANDLE_VALUE) then begin
try
findfiledata_d.ftCreationTime := findfiledata_s.ftCreationTime;
findfiledata_d.ftLastWriteTime := findfiledata_s.ftLastWriteTime;
findfiledata_d.ftLastAccessTime := findfiledata_s.ftLastAccessTime;
findfiledata_d.dwFileAttributes := findfiledata_s.dwFileAttributes;
finally
Windows.FindClose(hFind_s);
Windows.FindClose(hFind_d);
end;
end;
end;
Hat jemand eine Idee? Oder schonmal eine ähnliche Funktion geschrieben?
Ganz wichtig ist, dass Widestring-Dateinamen benutzt werden können!
VG, Benny