使用lua获取文件创建时间

问题描述 投票:0回答:3

如何获取文件的创建时间?

我发现了什么: Lua 的 lfs 库包含一个获取文件属性的方法。然而,唯一接近回答我的问题的是:

  • 访问 - 上次访问时间
  • 修改 - 最后一次数据修改时间
  • 更改 - 上次文件状态更改的时间

根据他们的描述,他们都没有专门检查创建时间。 我已经谷歌了一段时间,找不到答案。

编辑:我使用的是 Windows 系统。

file time lua
3个回答
4
投票

Windows 命令行提供参数

/T:C
,用于在
dir
命令上下文中使用时显示文件创建日期/时间。

因此,您可以使用

io.popen
功能,如下所示:

local sOut = io.popen( "dir /T:C *files*", "r" )
local sData = sOut:read "*a"
-- process sData as string to filter content as your needs

2
投票

至少在 Unix 上,你不能。

struct stat
中有三个与时间相关的成员:

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

有些人将

st_ctime
误解为文件创建时间,但事实并非如此。 Unix 风格的系统中不保留文件创建时间。

最接近的是上次状态更改时间,您可以通过

lfs
获得该时间,或者阅读如何在Lua中获取最后修改的时间戳以获得无需第三方库的解决方案。


0
投票

在 Linux 中使用

stat
实用程序。它适用于现代文件系统。 要获取最后修改的时间戳,请使用

stat -c %Y <path-to-file>

所以,你可以使用Lua的

io.popen
来执行并捕获输出

io.popen()

这是参考 - 手册页

© www.soinside.com 2019 - 2024. All rights reserved.