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;
function CovFileDate(Fd:FileTime):TDateTime;
var
Tct:SystemTime;
Temp:FileTime;
begin
FileTimeToLocalFileTime(Fd,Temp);
FileTimeToSystemTime(Temp,Tct);
CovFileDate:=SystemTimeToDateTime(Tct);
end;
少了一个
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;