Как скопировать последний файл из каталога, используя lua - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь скопировать только последний файл из каталога, используя lua файл. Последний файл означает: зависит от измененного времени / времени создания. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Обращаясь к этому вопросу: Как получить последнюю измененную метку времени в Lua

Возможно, вы сможете использовать функцию io.popen для выполнения команда оболочки, чтобы получить имя файла. Кажется, что нет встроенной функции, которая предоставляет метаданные файловой системы или статистику. Примерно так может работать:

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

Я не знаком с Lua, но, возможно, это поможет. Я полагаю, что когда у вас есть имя самого нового файла, вы можете использовать другие функции ввода-вывода для копирования.

0 голосов
/ 08 февраля 2020
local function get_last_file_name(directory)
   local command = 'dir /a-d /o-d /tw /b "'..directory..'" 2>nul:'
   -- /tw for last modified file
   -- /tc for last created file
   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)
   -- read the last file
   local file = io.open(directory..file_name)
   local content = file:read"*a"
   file:close()
   -- print content of the last file
   print(content)
else
   print"Directory is empty"
end
...