我要获得文件的名字,大小,创建时间
在FindFirst 函数中有个返回值 var F:TSearchRec中的属性FindData:TWin32FindData,可以获得文件的创建时间,但不知道怎么用,请教各位大哥!
假设要把创建时间显示到一个memo里还有个问题,TStrings是什么类型?和string,StringList有什么区别?procedure TForm1.CheckFile(LocalDIR:String;ServerDIR:String);
var
SearchRec:TSearchRec;
begin
memo1.Lines.Clear;
if (FindFirst(ServerDIR+'*.*',faAnyFile,SearchRec)=0) then
begin
repeat
if (CheckDIR(SearchRec)=0) then
begin
memo1.Lines.Add(SearchRec.Name); //文件名
memo1.Lines.Add(inttostr(SearchRec.Size)); //大小 end;
until (FindNext(SearchRec) <> 0);
FindClose(SearchRec);
end;
end;
在FindFirst 函数中有个返回值 var F:TSearchRec中的属性FindData:TWin32FindData,可以获得文件的创建时间,但不知道怎么用,请教各位大哥!
假设要把创建时间显示到一个memo里还有个问题,TStrings是什么类型?和string,StringList有什么区别?procedure TForm1.CheckFile(LocalDIR:String;ServerDIR:String);
var
SearchRec:TSearchRec;
begin
memo1.Lines.Clear;
if (FindFirst(ServerDIR+'*.*',faAnyFile,SearchRec)=0) then
begin
repeat
if (CheckDIR(SearchRec)=0) then
begin
memo1.Lines.Add(SearchRec.Name); //文件名
memo1.Lines.Add(inttostr(SearchRec.Size)); //大小 end;
until (FindNext(SearchRec) <> 0);
FindClose(SearchRec);
end;
end;
var cTime: TDateTime): Boolean;
var
fHandle: HFILE;
fStruct: _OFSTRUCT;
ftCreation: _FILETIME;
ftLastAccess: _FILETIME;
ftLastWrite: _FILETIME;
sTime: _SYSTEMTIME;
begin
fHandle := OpenFile(PChar(FName), fStruct, OF_READ);
Result := (fHandle <> HFILE_ERROR);
if Result then
Begin
Result := GetFileTime(fHandle, @ftCreation, @ftLastAccess, @ftLastWrite);
if Result then
begin
Result := FileTimeToSystemTime(ftCreation, sTime);
cTime := SystemTimeToDateTime(sTime);
end;
_lclose(fHandle);
end;
end;
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;
}
FileTimeToLocalFileTime(ffd.ftCreationTime,lft);
FileTimeToDosDateTime(lft,LongRec(dft).Hi,LongRec(dft).Lo);
Result:=FileDateToDateTime(dft);
windows.FindClose(h);
end
else
result:=0;
end;