如何读取文件的创建时间和文件大小?

yangzong18 2008-01-08 04:19:06
如何读取文件的创建时间(注意是创建时期加时间)和文件大小?
有那为大哥能给个完整的例子谢谢!
...全文
256 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
禹爸爸 2008-01-09
  • 打赏
  • 举报
回复
var
f: TSearchRec;
begin
if FindFirst(FileName, faAnyFile, f) = 0 then begin
FileSize := f.Size;
FileTime := f.Time;
FindClose(f);
end;
end;
pengxuan 2008-01-09
  • 打赏
  • 举报
回复
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.
cnhxjtoa 2008-01-08
  • 打赏
  • 举报
回复
function CovFileDate(Fd:FileTime):TDateTime;
var
Tct:SystemTime;
Temp:FileTime;
begin
FileTimeToLocalFileTime(Fd,Temp);
FileTimeToSystemTime(Temp,Tct);
CovFileDate:=SystemTimeToDateTime(Tct);
end;
少了一个
qkhhxkj102 2008-01-08
  • 打赏
  • 举报
回复
楼上的朋友可以说明一下吗??
cnhxjtoa 2008-01-08
  • 打赏
  • 举报
回复
function Tform1.FileCreatedtime(Filename:String):string;
var
Tp:TSearchRec;
begin
FindFirst(Filename,faAnyFile,Tp);
Result:=FormatDateTime('yyyy/mm/dd,hh:mm:ss',CovFileDate(Tp.FindData.ftCreationTime));
FindClose(Tp);
end;

function GetDirectorySize(const ADirectory:string):Integer;
var
sr:TSearchRec;
begin
Result:=0;
if not DirectoryExists(ADirectory) then exit;
if FindFirst(ADirectory+'\*.*', faAnyFile, sr) = 0 then
begin
repeat
if ((sr.Attr and faDirectory)=faDirectory) and(sr.Name<>'.') and (sr.Name<>'..') then begin
Result:=Result+GetDirectorySize(ADirectory+'\'+sr.Name) ;
end else if (sr.Name <>'.') and (sr.Name<>'..') then begin
Result:=Result+sr.Size;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
ly_liuyang 2008-01-08
  • 打赏
  • 举报
回复
Win32FindFirst ~具体自己找Baidu之类的

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧