Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
Delphi 2006 Professional
|
Re: Timestamps vergleichen
12. Mär 2003, 10:14
Zitat von Dede:
Mahlzeit...
...
Es soll so eine Art Backup Verfahren werden, wobei die Timestamps verglichen werden und wenn die sich unterscheiden soll die Datei gecopied werden.
...
Hai Dede,
Mahl dir deine Zeit doch selber
Ich habe das mal so gelöst:
Delphi-Quellcode:
function FileTimeToDate(filetime: TFileTime): TDate;
var
systime : TSystemTime;
begin
FileTimeToSystemTime(filetime, systime);
result := EncodeDate(systime.wYear, systime.wMonth, systime.wDay);
end;
{****************************************************}
function FileTimeToTime(filetime: TFileTime): TTime;
var
systime : TSystemTime;
begin
FileTimeToSystemTime(filetime, systime);
result := EncodeTime(systime.wHour, systime.wMinute, systime.wSecond, systime.wMilliseconds);
end;
{****************************************************}
function FileTimeToDateTime(filetime: TFileTime): TDateTime;
begin
result := FileTimeToDate(filetime) + FileTimeToTime(filetime);
end;
{****************************************************}
procedure TForm1.Button1Click(Sender: TObject);
var
Info_File1,
Info_File2 : TWin32FileAttributeData;
File1,
File2 : string;
Date_File1,
Date_File2 : TDateTime;
begin
file1 := 'c:\Autoexec.bat';
file2 := 'c:\bakup\Autoexec.bat';
if (GetFileAttributesEx(PChar(file1), GetFileExInfoStandard, @Info_File1)) then
begin
if (GetFileAttributesEx(PChar(file2), GetFileExInfoStandard, @Info_File2)) then
begin
FileTimeToDateTime(Info_File1.ftLastWriteTime);
FileTimeToDateTime(Info_File2.ftLastWriteTime);
if (Date_File1 <> Date_File2) then
begin
if not (CopyFile(PChar(file1), PChar(File2), False)) then
begin
ShowMessage('Kopieren fehlgeschlagen')
end;
end;
end;
end;
end;
Stephan B. "Lasst den Gänsen ihre Füßchen"
|
|
Zitat
|