当前位置:  开发笔记 > 编程语言 > 正文

如何在Delphi中获取文件的创建/最后修改日期?

如何解决《如何在Delphi中获取文件的创建/最后修改日期?》经验,为你挑选了3个好方法。

我想将这些属性的文件作为整数值.



1> Toon Krijthe..:

尝试

function FileAge(const FileName: string; out FileDateTime: TDateTime): Boolean;

来自SysUtils.


@HX_unbanned - 仅弃用第一个重载(返回FileTime)

2> OregonGhost..:

Delphians倾向于喜欢FindFirst方法(SearchRec结构中有一些),但我建议使用Win32 API函数GetFileAttributesEx.



3> gabr..:

来自DSiWin32免费软件库:

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 }


为什么var而不是out参数 - 你似乎没有使用进来的值?
推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有