如何使用lua从目录中复制最新的文件

我正在尝试使用lua文件仅复制目录中的最新文件。 最新的文件取决于修改时间/创建时间。 我应该如何实现呢?

点赞
用户71524
用户71524

参考这个问题:怎么在 Lua 中获取最后修改的时间戳

你或许可以利用 io.popen 函数来执行一个 shell 命令以获取文件的名称。好像没有内置的函数可以获取文件系统元数据或者状态。类似这样的代码可能会生效:

local name_handle = io.popen("ls -t1 | head -n 1")
local filename = name_handle:read()

我不熟悉 Lua,但是或许这能帮到你。我想,一旦你拿到了最新文件的名称,你就可以使用其他 IO 函数来实现复制。

2020-02-07 05:45:14
用户1847592
用户1847592
本地函数 get_last_file_name(directory)
   local command = 'dir /a-d /o-d /tw /b "'..directory..'" 2>nul:'
   -- /tw 表示最近修改的文件
   -- /tc 表示最近创建的文件
   local pipe = io.popen(command)
   local file_name = pipe:read()
   pipe:close()
   return file_name
end

local directory = [[C:\path\to\your\directory\]]
local file_name = get_last_file_name(directory)
if file_name then
   print(file_name)
   -- 读取最近的文件
   local file = io.open(directory..file_name)
   local content = file:read"*a"
   file:close()
   -- 打印最近的文件内容
   print(content)
else
   print"Directory is empty"
end
2020-02-08 10:29:00