サブフォルダのタイムスタンプを得るには?

解決


KEN  2009-05-06 17:52:51  No: 34289  IP: 192.*.*.*

ファイル単体の場合、FileAge関数でタイムスタンプを得ることができますがファイルを格納しているフォルダのタイムスタンプを得ようとすると-1が返ってきます。フォルダのタイムスタンプを得るにはどうしたらいいでしょうか?

編集 削除
KEN  2009-05-06 18:37:45  No: 34290  IP: 192.*.*.*

過去ログで自己解決できました。

function FolderAge(name: string): Tdatetime;
var
  Handle: THandle;
  Data: TWin32FindData;
  ft: TFileTime;
  st: TSystemTime;
begin
  Handle := Windows.FindFirstFile(Pchar(name), Data);
  FileTimeToLocalFileTime(Data.ftLastWriteTime, ft);
  FileTimeToSystemTime(ft, st);
  Result := SystemTimeToDateTime(st);
end;

編集 削除
忘れもの  2009-05-06 21:19:44  No: 34291  IP: 192.*.*.*

FindFirstでいいのでは……
(内部でやってることは同じでしょうけど。タイムスタンプ変換の手間が少し減るかな?)
いずれにしても、FindCloseをお忘れなく。

編集 削除