如何得到文件的详细信息,包括创建时间,修改时间,大小,属性,等等(50分)

  • 主题发起人 主题发起人 小穷鬼一世
  • 开始时间 开始时间

小穷鬼一世

Unregistered / Unconfirmed
GUEST, unregistred user!
在VC中CFile封装一个GetStatus,Delphi有没有相关的函数?
 
//得到文件大小
var f: file of Byte;
size : Longint;

AssignFile(f,DataName);
Reset(f);
try
size := FileSize(f);
edtNewSize.text:=IntToStr(size div 1024)+'K';
finally
CloseFile(f);
end;


//GetFileLastAccessTime()将会以 Delphi的 TdateTime格式返回你所指定的文件的最后访问日期
function GetFileLastAccessTime(sFileName:string;uFlag:byte):TDateTime;
var
ffd:TWin32FindData;
dft:DWord;
lft:TFileTime;
h:THandle;
begin
h:=FindFirstFile(PChar(sFileName),ffd);
if h<>INVALID_HANDLE_VALUE then
begin
case uFlag of
FILE_CREATE_TIME:FileTimeToLocalFileTime(ffd.ftCreationTime,lft);
FILE_MODIFY_TIME:FileTimeToLocalFileTime(ffd.ftLastWriteTime,lft);
FILE_ACCESS_TIME:FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);
else
FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);
end;
FileTimeToDosDateTime(lft,LongRec(dft).Hi,LongRec(dft).Lo);
Result:=FileDateToDateTime(dft);
windows.FindClose(h);
end
else
result:=0;
end;

 
在VC中CFile封装的GetStatus没有对应的API,Delphi可能不会有。
 
var
filename:string;
f:file ;
d:tdatetime;
begin
filename:='D:/Program Files/desktop.ini';

d:= FileDateToDateTime(fileage(filename));
label1.Caption:=DatetoStr(d);

end;
这可以取得创建日期,如还要其它方法,可以查找delphi的帮助,比如filegetdate,等等
 
使用FindFirst()函数,返回TSearchRec结构
TSearchRec = record
time: integer;
size: integer;
Attr: integer;
name: tfilename;
excludeattr: integer;
findhandle: thandle;
findata: twin32finddata;
end;

这个结构包含了文件的创建时间,修改时间,最后一次访问时间,大小,属性,名称等信息
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部