首页 > 代码库 > 【Lua】关于遍历制定路径下所有目录及文件

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

  关于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的各种属性,包括文件类型、大小、权限等等信息

 1 require("lfs") 2  3 function attrdir(path) 4     for file in lfs.dir(path) do 5         if file ~= "." and file ~= ".." then 6             local f = path .. "/" .. file 7             local attr = lfs.attributes(f) 8             print (f) 9             for name, value in pairs(attr) do    10                 print (name, value)11             end12          end13      end14 end15 16 attrdir("/var/www/tmp/css")

  

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

 1 require"lfs" 2  3 function attrdir(path) 4   for file in lfs.dir(path) do 5     if file ~= "." and file ~= ".." then      //过滤linux目录下的"."和".."目录 6       local f = path.. ‘/‘ ..file 7       local attr = lfs.attributes (f) 8       if attr.mode == "directory" then 9           print(f .. "  -->  " .. attr.mode)    10           attrdir(f)                //如果是目录,则进行递归调用11       else12           print(f .. "  -->  " .. attr.mode)13       end14     end15   end16 end17 18 attrdir(".")

  输出:

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