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
解决方案 »
- RAVE 报表组件
- TTcpClient和TTcpServer
- Image.canvas刷新问题
- d7中Rave做报表统计一个字段的和,我使用CalcText就是不能成功啊。
- 小软件用什么数据库合适????
- 请教四舍五入函数的问题
- 开放远程控制代码
- 还是安装程序????????????????
- 哪位有Delphi5 Trail edition的安装password?
- 普通数据库系统能通过 odbc 或 bde 指定数据源, 现在我用 ado 如果不通过 odbc 有什么办法在安装时指定数据源?(好像通过odbc 会降低效 )
- 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;