使用Lua获取文件创建时间

如何获取文件创建时间?

我找到的信息是: Lua 的 lfs 库包含了获取文件属性的方法。但是,看起来只有以下属性跟我的问题有点相关:

  • access - 上次访问时间
  • modification - 上次数据修改时间
  • change - 上次文件状态改变时间

根据它们的描述,没有哪一个特别地检查创建时间。 我已经谷歌搜索了一会,没有找到答案。

编辑:我的系统是 windows。

点赞
用户1009479
用户1009479

至少在Unix系统上,是无法获取文件的创建时间的。在struct stat结构体内,有三个与时间相关的成员:

  • st_atime 最近一次访问时间。
  • st_mtime 最近一次数据修改时间。
  • st_ctime 最近一次状态修改时间。

有些人误认为st_ctime是文件的创建时间,但这是不正确的。在Unix系统中不会保留文件的创建时间。

最接近的是“最近状态修改”时间,您可以借助lfs获取该时间,或者阅读如何在Lua中获取最近修改时间戳获取不需要第三方库的解决方案。

2015-11-02 04:55:30
用户1190388
用户1190388

在 Windows 命令行中,当使用 dir 命令时,可以使用参数 /T:C 来显示文件的创建日期/时间。

因此,你可以像下面这样使用 io.popen 函数:

local sOut = io.popen( "dir /T:C *files*", "r" )
local sData = sOut:read "*a"
-- 按照需要,将 sData 当作字符串进行处理以筛选出内容
2015-11-02 08:07:20