unit filequre;interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,DateUtils;
type
Tfilequre = class(Tobject)
privatepublicend; function FGetFileTime(sFileName:string;TimeType:Integer):TDateTime;
function GetFileSize(firstname:string;secondname:string):integer;
function CompareFileDates(firstdate:string;seconddate:string):integer;implementation 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
//只查找一个文件,所以关掉" f i n d "
Windows.FindClose(H);
//转换F I L E T I M E格式成为local FILETIME格式
FileTimeToLocalFileTime( Time,lft);
//转换F I L E T I M E格式成为D O S t i m e格式
FileTimeToDosDateTime( lft,LongRec(dft).Hi,LongRec(dft).Lo);
//最后,转换D O S t i m e格式成为D e l p h i ' s应用的T d a t e Ti m e格式
Result := FileDateToDateTime( dft );
end
else
result :=0;
end ;function GetFileSize(firstname:string;secondname:string):integer;
var
s,l:integer; //比较文件大小
fromt,tot: file;
begin
AssignFile(fromt,firstname);
Reset(fromt,1);
AssignFile(tot,secondname);
Reset(tot,1);
s:=FileSize(fromt);
l:=FileSize(tot);
Closefile(fromt);
Closefile(tot);
if s > l then result := 1; //假如返回的是1,那么第一个比 第二个大
if s = l then result := 0; // 假如返回的是0,那么第一个等于 第二个
if s < l then result := -1; // 假如返回的是-1,那么第一个比 第二个小end;function Comparefiledates(firstdate:string;seconddate:string):integer;
var
first,second:tdatetime; //比较文件修改日期
begin
first:=FGetFileTime(firstdate,1);
second:=FGetFileTime(seconddate,1);
if comparedatetime(first,second) =1 then result:=1; //假如返回的是1,那么第一个比 第二个大
if comparedatetime(first,second) =0 then result:=0; // 假如返回的是0,那么第一个等于 第二个
if comparedatetime(first,second) =-1 then result:=-1; // 假如返回的是-1,那么第一个比 第二个小
end;
end.
老是报错:
Comparefiledates返回值undefined
GetFileSize返回值undefined
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,DateUtils;
type
Tfilequre = class(Tobject)
privatepublicend; function FGetFileTime(sFileName:string;TimeType:Integer):TDateTime;
function GetFileSize(firstname:string;secondname:string):integer;
function CompareFileDates(firstdate:string;seconddate:string):integer;implementation 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
//只查找一个文件,所以关掉" f i n d "
Windows.FindClose(H);
//转换F I L E T I M E格式成为local FILETIME格式
FileTimeToLocalFileTime( Time,lft);
//转换F I L E T I M E格式成为D O S t i m e格式
FileTimeToDosDateTime( lft,LongRec(dft).Hi,LongRec(dft).Lo);
//最后,转换D O S t i m e格式成为D e l p h i ' s应用的T d a t e Ti m e格式
Result := FileDateToDateTime( dft );
end
else
result :=0;
end ;function GetFileSize(firstname:string;secondname:string):integer;
var
s,l:integer; //比较文件大小
fromt,tot: file;
begin
AssignFile(fromt,firstname);
Reset(fromt,1);
AssignFile(tot,secondname);
Reset(tot,1);
s:=FileSize(fromt);
l:=FileSize(tot);
Closefile(fromt);
Closefile(tot);
if s > l then result := 1; //假如返回的是1,那么第一个比 第二个大
if s = l then result := 0; // 假如返回的是0,那么第一个等于 第二个
if s < l then result := -1; // 假如返回的是-1,那么第一个比 第二个小end;function Comparefiledates(firstdate:string;seconddate:string):integer;
var
first,second:tdatetime; //比较文件修改日期
begin
first:=FGetFileTime(firstdate,1);
second:=FGetFileTime(seconddate,1);
if comparedatetime(first,second) =1 then result:=1; //假如返回的是1,那么第一个比 第二个大
if comparedatetime(first,second) =0 then result:=0; // 假如返回的是0,那么第一个等于 第二个
if comparedatetime(first,second) =-1 then result:=-1; // 假如返回的是-1,那么第一个比 第二个小
end;
end.
老是报错:
Comparefiledates返回值undefined
GetFileSize返回值undefined
解决方案 »
- Delphi DLL 中的窗体能接收到消息吗
- 为什么窗体BorderStyle=bsSizeable 时最大化,anchors设置无效?
- 请问有什么软件可以制作64*64的.cur文件
- 关于鼠标滚轮消息的编程,请教各位.
- 帮我把这段代码翻译成DELPHI好吗?
- 求救
- 100分急求,C语言代码转换为Pascal代码?
- 关于 Foreign Key 带出相关数据的方法及问题
- 作触摸屏程序,是不是也很难?我听说对于触摸屏来说,他自己带有接口函数,是不是呀?那位高手作过这方面的程序,给我示例一下,如何?谢谢!
- 一个关于给控件添加属性的问题
- ODAC Net Edition 4.15 for Delphi 7 下载分享
- 关于似QQ服务端维护好友状态的问题,请您谈谈您的方法是什么!
function FGetFileTime(sFileName:string;TimeType:Integer):TDateTime;
function GetFileSize(firstname:string;secondname:string):integer;
function CompareFileDates(firstdate:string;seconddate:string):integer;