有人知道为什么FileAge不使用“c:\ pagefile.sys”吗? 它返回-1。
更新:
发现它:它是在Delphi 2010(QC Entry 73539)中修复的Delphi错误,但我发现the PDF没有解释它们如何修复它。
有谁知道他们是如何解决的,所以我可以修复我的Delphi 7?
更新: 由Radu Barbu提供的优雅修复!
Delphi 7,Win 7(32位)
答案 0 :(得分:3)
试试这个:
使用TSearchRec类型的变量(wSr bellow)加载pagefile.sys然后
wSR.FindData.ftLastWriteTime
- 应该在访问文件时返回
并且使用下面的函数你应该得到时间
function FileTime2DateTime(FileTime: TFileTime): TDateTime;
var
LocalFileTime : TFileTime;
SystemTime : TSystemTime;
begin
Result := 0;
try
FileTimeToLocalFileTime(FileTime, LocalFileTime);
FileTimeToSystemTime(LocalFileTime, SystemTime);
Result := SystemTimeToDateTime(SystemTime);
except on e: Exception do
//some message if you want
end;
end;
最好的问候,
答案 1 :(得分:2)
请注意,不推荐使用FileAge。
TFile.GetLastAccessTime( FileName)
可能是替代......
答案 2 :(得分:0)
调用GetLastError()以获取FindFirstFile()API函数(由FileAge调用)返回的错误代码。
更新:Delphi 2010修复程序可以追溯到FindFirstFile,因此很可能无法帮助您。他们调用GetFileAttributesEx,如果失败,则调用FindFirstFile。对于pagefile.sys,GetFileAttributesEx应该会失败。所以你需要检查错误代码。