FileAge无法使用“c:\ pagefile.sys”

时间:2010-09-29 19:22:39

标签: delphi

有人知道为什么FileAge不使用“c:\ pagefile.sys”吗? 它返回-1。

更新:
发现它:它是在Delphi 2010(QC Entry 73539)中修复的Delphi错误,但我发现the PDF没有解释它们如何修复它。

有谁知道他们是如何解决的,所以我可以修复我的Delphi 7?

更新: 由Radu Barbu提供的优雅修复!


Delphi 7,Win 7(32位)

3 个答案:

答案 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应该会失败。所以你需要检查错误代码。

相关问题