File 正在尝试循环目录以使用lua列出所有文件
我对lua来说是个新手,我试图去理解和拼凑,并寻求帮助。 我已经阅读了有关lua文件循环的现有文章,但无法获得所需的输出 问题-我有一个包含文件的文件夹,文件夹路径-File 正在尝试循环目录以使用lua列出所有文件,file,lua,path,File,Lua,Path,我对lua来说是个新手,我试图去理解和拼凑,并寻求帮助。 我已经阅读了有关lua文件循环的现有文章,但无法获得所需的输出 问题-我有一个包含文件的文件夹,文件夹路径-“D:\Test\u files\Outbound\Client\final” 文件夹中的文件扩展名为-.txt 试图: 获取文件夹中的文件数(在本例中为“final”文件夹) 读取每个文件,构建类似以下内容的循环: list = {} for i=0,(#Totalfilecount) do local fr = io.open
“D:\Test\u files\Outbound\Client\final”
文件夹中的文件扩展名为-.txt
试图:
list = {}
for i=0,(#Totalfilecount) do
local fr = io.open('D:\Test_Files\Outbound\Client\final\'..filename.,'rb')
local f = fr.read('*.txt')
Customfunction(f) -- Passing file content to customfunction to apply business logic.
end
$ luarocks install luafilesystem
按如下方式使用库:
require "lfs"
function dirtree(dir)
assert(dir and dir ~= "", "Please pass directory parameter")
if string.sub(dir, -1) == "/" then
dir=string.sub(dir, 1, -2)
end
local function yieldtree(dir)
for entry in lfs.dir(dir) do
if entry ~= "." and entry ~= ".." then
entry=dir.."/"..entry
local attr=lfs.attributes(entry)
coroutine.yield(entry,attr)
if attr.mode == "directory" then
yieldtree(entry)
end
end
end
end
return coroutine.wrap(function() yieldtree(dir) end)
end
上述代码的示例使用:
for filename, attr in dirtree("D:\Test_Files\Outbound\Client\final") do
print(attr.mode, filename)
end
您必须检查扩展名是否等于txt。要读取文件扩展名,请使用以下代码段:
function GetFileExtension(path)
return path:match("^.+(%..+)$")
end
所以,为了回答您的问题,只需计算dirtree中返回的数组中的元素,就可以得到目录中的文件数量。要回答第二个问题,只需使用帖子中的代码。所需的表由dirtree()返回,但您可能只想从中提取.txt文件。要阅读文件,只需检查其他答案。您已经有了给定的名称(在数组中),所以请使用它
编辑:您可以解析dir
和ls
命令的结果以获取目录列表,但是您不应该。尽管通过这种方式,您不需要安装任何库,您的代码将严重依赖操作系统
向代码中添加库并不是那么糟糕。黑客攻击情况更糟
(不确定文件扩展名提取功能是否正常工作。我没有在本文中使用dirtree代码,它属于David Kastrup)Hi,你能编辑这个问题,使其只包含代码块而不包含一般文本吗?你熟悉www.google.com或类似网站吗?来吧