我目前正在使用以下指南来获取Delphi的文件"LastAccessTime" http://www.latiumsoftware.com/en/delphi/00007.php
使用FindNext,可以访问TSearchRec对象,我可以从该对象访问类型为TFileTime的ftLastWriteTime
当将其转换为TDateTime对象(使用上面的源)然后输出DateTimeToString时,我得到日期和时间,但小时似乎是文件ftLastWriteTime小时值中两位数的总和.
即取代2009/09/03 13:45我得2009/09/03 04:45或者代替2009/09/03 17:45我得2009/09/03 08:45
欢迎提出任何意见,非常感谢
"像往常一样" ;-)我会指向DSiWin32其中包括功能DSiGetFileTimes返回创建时间,最后访问时间和最后修改时间.
function DSiFileTimeToDateTime(fileTime: TFileTime; var dateTime: TDateTime): boolean;
var
sysTime: TSystemTime;
begin
Result := FileTimeToSystemTime(fileTime, sysTime);
if Result then
dateTime := SystemTimeToDateTime(sysTime);
end; { DSiFileTimeToDateTime }
function DSiGetFileTimes(const fileName: string; var creationTime, lastAccessTime,
lastModificationTime: TDateTime): boolean;
var
fileHandle : cardinal;
fsCreationTime : TFileTime;
fsLastAccessTime : TFileTime;
fsLastModificationTime: TFileTime;
begin
Result := false;
fileHandle := CreateFile(PChar(fileName), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, 0, 0);
if fileHandle <> INVALID_HANDLE_VALUE then try
Result :=
GetFileTime(fileHandle, @fsCreationTime, @fsLastAccessTime,
@fsLastModificationTime) and
DSiFileTimeToDateTime(fsCreationTime, creationTime) and
DSiFileTimeToDateTime(fsLastAccessTime, lastAccessTime) and
DSiFileTimeToDateTime(fsLastModificationTime, lastModificationTime);
finally
CloseHandle(fileHandle);
end;
end; { DSiGetFileTimes }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
512 次 |
| 最近记录: |