您的位置:首页 > 编程语言 > Lua

【Lua】关于遍历指定路径下所有目录及文件

2014-11-18 22:41 519 查看
  关于Lua中如何遍历指定文件路径下的所有文件,需要用到Lua的lfs库。

  首先创建一个temp.lua文件,用编辑器打开:

  要使用lfs库,首先需要把lfs库加载进来

require("lfs")


  随后创建一个函数,用来遍历指定路径下的所有文件,这里我们需要用到lfs库中的lfs.dir()方法和lfs.attributes(f)方法。

  lfs.dir(path)

  可以返回一个包含path内所有文件的字符串,如果该路径不是一个目录,则返回一个错误。可以用

for file in lfs.dir(path) do
print(file)
end


  来取得路径内的各文件名

  lfs.attributes(filepath)

  返回filepath的各种属性,包括文件类型、大小、权限等等信息

require("lfs")

function attrdir(path)
for file in lfs.dir(path) do
if file ~= "." and file ~= ".." then
local f = path .. "/" .. file
local attr = lfs.attributes(f)
print (f)
for name, value in pairs(attr) do
print (name, value)
end
end
end
end

attrdir("/var/www/tmp/css")


  


  有了这两个方法,就可以来遍历指定路径下的所有文件了:

require"lfs"

function attrdir(path)
for file in lfs.dir(path) do
if file ~= "." and file ~= ".." then      //过滤linux目录下的"."和".."目录
local f = path.. '/' ..file
local attr = lfs.attributes (f)
if attr.mode == "directory" then
print(f .. "  -->  " .. attr.mode)
attrdir(f)                //如果是目录,则进行递归调用
else
print(f .. "  -->  " .. attr.mode)
end
end
end
end

attrdir(".")


  输出:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: