// 转换文件的时间格式function CovFileDate(FileDate: _FileTime): TDateTime; var Tct: _SystemTime; Temp: _FileTime; begin FileTimeToLocalFileTime(FileDate, Temp); FileTimeToSystemTime(Temp, Tct); CovFileDate := SystemTimeToDateTime(Tct); end;// 获取文件时间,fn表示目标文件路径和名称,fType为取得日期的类型function GetFileTime(const fn: string; const fType: Byte): string; const Model = 'yyyy/mm/dd,hh:mm:ss'; { 设定时间格式 } var Tp: TSearchRec; { 声明Tp为一个查找记录 } begin FindFirst(fn, faAnyFile, Tp); { 查找目标文件 } // 返回文件的创建时间 if fType = 1 then Result := FormatDateTime(Model, CovFileDate(Tp.FindData.ftCreationTime)); // 返回文件的修改时间 if fType = 2 then Result := FormatDateTime(Model, CovFileDate(Tp.FindData.ftLastWriteTime)); //返回文件的当前访问时间 if fType = 3 then Result := FormatDateTime(Model, Now); FindClose(Tp); end;procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then begin Memo1.Clear; Memo1.Lines.Add('文件创建日期:' + GetFileTime(OpenDialog1.FileName, 1)); Memo1.Lines.Add('文件修改日期:' + GetFileTime(OpenDialog1.FileName, 2)); Memo1.Lines.Add('文件访问日期:' + GetFileTime(OpenDialog1.FileName, 3)); end; end;
to hhnick 编译的时候出错呀! [Error] Unit1.pas(17): Unsatisfied forward or external declaration: 'TForm1.CovFileDate' [Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.GetFileTime'
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private function GetFileCreateDT(filename:string):string;//获得文件创建日期和时间 function CovFileDate(Fd:_FileTime):TDateTime;//转换日期时间格式 function GetFileSizeValue(pFilePath:string):Int64; //文件大小 public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.CovFileDate(Fd: _FileTime): TDateTime; var Tct:_SystemTime; Temp:_FileTime; begin FileTimeToLocalFileTime(Fd,Temp); FileTimeToSystemTime(Temp,Tct); CovFileDate:=SystemTimeToDateTime(Tct); end; function TForm1.GetFileCreateDT(filename: string): string; var Tp:TSearchRec; begin FindFirst(filename,faAnyFile,Tp); Result:=FormatDateTime('YYYY-MM-DD,HH:MM:SS',CovFileDate(Tp.FindData.ftCreationTime)); end; procedure TForm1.Button1Click(Sender: TObject); begin Showmessage(GetFileCreateDT('D:\aa.rar')); ShowMessage(IntToStr(GetFileSizeValue('D:\aa.rar'))); end; function TForm1.GetFileSizeValue(pFilePath: string): Int64; var hFile:Thandle; dwSize,dwSizeHigh:DWORD; begin try hFile:=CreateFile(pchar(pFilePath),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0); dwSize:=GetFileSize(hFile,@dwSizeHigh); CloseHandle(hFile); Result:=dwSize; except Result:=0; end; end; end.
var
Tct: _SystemTime;
Temp: _FileTime;
begin
FileTimeToLocalFileTime(FileDate, Temp);
FileTimeToSystemTime(Temp, Tct);
CovFileDate := SystemTimeToDateTime(Tct);
end;// 获取文件时间,fn表示目标文件路径和名称,fType为取得日期的类型function GetFileTime(const fn: string; const fType: Byte): string;
const
Model = 'yyyy/mm/dd,hh:mm:ss'; { 设定时间格式 }
var
Tp: TSearchRec; { 声明Tp为一个查找记录 }
begin
FindFirst(fn, faAnyFile, Tp); { 查找目标文件 }
// 返回文件的创建时间
if fType = 1 then
Result := FormatDateTime(Model, CovFileDate(Tp.FindData.ftCreationTime));
// 返回文件的修改时间
if fType = 2 then
Result := FormatDateTime(Model, CovFileDate(Tp.FindData.ftLastWriteTime));
//返回文件的当前访问时间
if fType = 3 then
Result := FormatDateTime(Model, Now); FindClose(Tp);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Memo1.Clear;
Memo1.Lines.Add('文件创建日期:' + GetFileTime(OpenDialog1.FileName, 1));
Memo1.Lines.Add('文件修改日期:' + GetFileTime(OpenDialog1.FileName, 2));
Memo1.Lines.Add('文件访问日期:' + GetFileTime(OpenDialog1.FileName, 3));
end;
end;
编译的时候出错呀!
[Error] Unit1.pas(17): Unsatisfied forward or external declaration: 'TForm1.CovFileDate'
[Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.GetFileTime'
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
function GetFileCreateDT(filename:string):string;//获得文件创建日期和时间
function CovFileDate(Fd:_FileTime):TDateTime;//转换日期时间格式
function GetFileSizeValue(pFilePath:string):Int64; //文件大小
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} function TForm1.CovFileDate(Fd: _FileTime): TDateTime;
var
Tct:_SystemTime;
Temp:_FileTime;
begin
FileTimeToLocalFileTime(Fd,Temp);
FileTimeToSystemTime(Temp,Tct);
CovFileDate:=SystemTimeToDateTime(Tct);
end; function TForm1.GetFileCreateDT(filename: string): string;
var Tp:TSearchRec;
begin
FindFirst(filename,faAnyFile,Tp);
Result:=FormatDateTime('YYYY-MM-DD,HH:MM:SS',CovFileDate(Tp.FindData.ftCreationTime));
end; procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage(GetFileCreateDT('D:\aa.rar'));
ShowMessage(IntToStr(GetFileSizeValue('D:\aa.rar')));
end; function TForm1.GetFileSizeValue(pFilePath: string): Int64;
var
hFile:Thandle;
dwSize,dwSizeHigh:DWORD;
begin
try
hFile:=CreateFile(pchar(pFilePath),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
dwSize:=GetFileSize(hFile,@dwSizeHigh);
CloseHandle(hFile);
Result:=dwSize;
except
Result:=0;
end;
end; end.