Thema: Delphi Timestamps vergleichen

Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Timestamps vergleichen

  Alt 12. Mär 2003, 09: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"
  Mit Zitat antworten Zitat