【问题标题】:what i can set create/last modified/last access of a file?我可以设置文件的创建/上次修改/上次访问?
【发布时间】:2011-09-26 14:03:05
【问题描述】:

在:How to get create/last modified dates of a file in Delphi? 我发现作为获取创建/上次修改/上次访问日期/时间的 un 文件,但是要在文件中设置此值,我能做什么? 非常感谢。

【问题讨论】:

    标签: delphi file delphi-xe2


    【解决方案1】:

    IOUtils.pas单元中,可以在TFileTDirectory的记录中找到对应的方法:SetCreationTimeSetLastAccesstimeSetLastWriteTime,并附上它们的UTC兄弟。

    【讨论】:

      【解决方案2】:

      尝试 SysUtils 单元中的 SysUtils.FileSetDate 函数,该单元在内部调用 SetFileTime WinApi 函数。

      这个函数有两个版本

      function FileSetDate(const FileName: string; Age: Integer): Integer;
      function FileSetDate(Handle: THandle; Age: Integer): Integer;
      

      Age 参数是要设置的时间。您必须使用 DateTimeToFileDateTDateTime 值转换为 Windows 操作系统时间戳。

      这样

      FileSetDate(FileName, DateTimeToFileDate(Now));
      

      【讨论】:

      • +1 现在我们可以针对非 Windows 平台,这可能更具可移植性。但它只允许修改最后修改日期。你知道其他时间值是否有任何可移植性?
      • 是的,IOUtils(在较新版本的 delphi 中)单元具有设置文件和目录日期时间的全套功能。
      • @David,至少他们对 Windows 和 Posix 有单独的实现。
      • @Uwe 我实际上认为您的回答可能是最好的方法。这就是为什么我删除了我自己的劣质答案。
      • atimectime 怎么样?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      相关资源
      最近更新 更多