幫朋友寫一個文件更新程序,怎樣去判斷兩個文件的新舊...
我是用getfiletime來獲取時間的...是否行得通呢....

解决方案 »

  1.   

    如果在2秒间隔内修改的文件getfiletime就没办法判断了, 因为filetime最低精度是2秒
      

  2.   

    获取文件时间function FGetFileTime(sFileName: string;
              TimeType: Integer): TDateTime;
    var
       ffd:TWin32FindData;
       dft:DWord;
       lft,Time:TFileTime;
       H:THandle;
    begin
         H:=Windows.FindFirstFile(PChar(sFileName),ffd);
         case  TimeType of
               0: Time:=ffd.ftCreationTime;
               1: Time:=ffd.ftLastWriteTime;
               2: Time:=ffd.ftLastAccessTime;
         end;     //获取文件信息
         if (H <> INVALID_HANDLE_VALUE) then
         begin
              //我们只查找一个文件,所以关掉"find"
              Windows.FindClose(H);
              //转换FILETIME格式成为local  FILETIME格式
              FileTimeToLocalFileTime(Time,lft);
              //转换FILETIME格式成为DOStime格式
              FileTimeToDosDateTime(lft,LongRec(dft).Hi,LongRec(dft).Lo);
              //最后,转换DOStime格式成为Delphi's应用的TdateTime格式
              Result:=FileDateToDateTime(dft);
         end
         else
             result:=0;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
        Edit1.Text:=DateTimeToStr(FGetFileTime('C:\1.txt',0));
        Edit2.Text:=DateTimeToStr(FGetFileTime('C:\1.txt',1));
        Edit3.Text:=DateTimeToStr(FGetFileTime('C:\1.txt',2));
    end;
      

  3.   

    如果在2秒间隔内修改的文件getfiletime就没办法判断了, 因为filetime最低精度是2秒
    楼上的研究得精确如果单单要获得文件时间,那用getfiletime就足够了
      

  4.   

    获得时间直接用getfiletime就可以了。