Lua 目录操作
lua对目录的操作主要依赖lfs库,所以头文件必须要require lfs。lfs库中主要有一下的方法:
- lfs.attributes(filepath [, aname]) 获取路径指定属性,最常用的就是mode属性,返回字符串为file,directory,link,socket,named pipe,等等。
- lfs.chdir(path) 改变当前工作目录,成功返回true,失败返回nil加上错误信息
- lfs.currentdir 获取当前工作目录,成功返回路径,失败为nil加上错误信息
- lfs.dir(path) 返回一个迭代器(function)和一个目录(userdata),每次迭代器都会返回一个路径,直到不是文件目录为止,则迭代器返回nil
- lfs.lock(filehandle, mode[, start[, length]])
- lfs.mkdir(dirname) 创建一个新目录
- lfs.rmdir(dirname) 删除一个已存在的目录,成功返回true,失败返回nil加上错误信息
以lua遍历当前目录下所有文件为例:
require 'lfs'
function getpaths(rootpath, pathes)
pathes = pathes or {}
for entry in lfs.dir(rootpath) do
if entry ~= '.' and entry ~= '..' then
local path = rootpath..'/'..entry
local attr = lfs.attributes(path)
assert(type(attr) == 'table')
if attr.mode == 'directory' then
getpaths(path, pathes)
else
table.insert(pathes, path)
end
end
end
return pathes
end
pathes = {}
getpaths('.', pathes)
print(#(pathes))
for i = 1, #(pathes) do
print(pathes[i])
end
Lua目录操作详解与示例
Lua中的目录操作主要依赖于lfs库,包括获取文件属性、改变当前工作目录、获取当前目录、遍历目录、创建及删除目录等。通过lfs.attributes()可以查看mode属性判断文件类型,lfs.dir()用于迭代目录中的文件,lfs.mkdir()和lfs.rmdir()分别用于创建和删除目录。下面是一个使用lua遍历当前目录下所有文件的示例。
1万+

被折叠的 条评论
为什么被折叠?



