【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             end
12          end
13      end
14 end
15
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       else
12           print(f .. "  -->  " .. attr.mode)
13       end
14     end
15   end
16 end
17
18 attrdir(".")

  输出:

时间: 2024-10-25 20:30:05

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

访问指定路径下的目录以及文件

#include "stdafx.h" //vs2010下运行通过 #undef UNICODE #include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <iostream> using namespace std; void browseFile(char* path) { char pattern[FILENAME_MAX + 1]; sprintf(p

SSIS【Foreach 循环容器_Foreach 文件枚举器】(导入路径下的所有txt文件的内容) (转)

原文:http://blog.csdn.net/kk185800961/article/details/12276449 SQLServer 2008 R2 SSIS_Foreach 循环容器_Foreach 文件枚举器(导入路径下的所有txt文件的内容) 1. 拖动一个 [Foreach 循环容器]到[控制流]中,再拖动一个[数据流任务]到[Foreach 循环容器]中.如图: 2.编辑[Foreach 循环容器],在选项[集合]中选择[Foreach 文件枚举器],配置要遍历的文件夹及文件类

在HDFS上删除某个路径下特定类型的文件,比如class类型文件,比如txt类型文件

1.先获取连接: public class Utils { public static FileSystem HDFS() throws Exception{ Configuration conf = new Configuration(); conf.set("fs.defaultFS","hdfs://potter2:9000"); System.setProperty("HADOOP_USER_NAME", "potter&quo

linux下为目录和文件设置权限,

linux下为目录和文件设置权限,包括子目录的循环递归设置 chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod mode file|dir 改变所有子目录的权限: chmod mode dir -R                  注意后面加了个-R参数 参数就是权限模式 mode = 777 or 752 ,666,,, mode 的三个数字,分别表示owner,group,others所具有的权限. 1 = x 执行 2 = w 写 4 = r 读

Python --判断路径是否为目录或文件

os.path.isdir( ) 函数:判断某一路径是否为目录 os.path.isdir(path) os.path.isfile( ) 函数:判断某一路径是否为文件 os.path.isfile(path) path:要进行判断的路径 实例:判断E:\照片 这个路径是否为目录或文件 1 import os 2 print('判断该路径是否为目录:',os.path.isdir('E:\照片')) 3 print('判断该路径是否为文件:',os.path.isfile('E:\照片')) 原

C#遍历指定路径下的文件夹

通过指定路径访问路径下的文件,在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.CreateDirectory,已重载,用于创建指定路径下的所有目录: 2.Delete,删除指定目录: 3.Exists,确定给定目录是否引用磁盘现有目录:说白点就是判断路径是否存在: 4.GetCreationTime,获取目录的创建时间和日期: 4.GetCurrentDirectory,获取应用程序的当

【原】linux系统中,执行nosetests无法遍历以“test”开头的目录或文件的问题

最近在centos下面安装使用了nose,发现了一个问题:在命令行中执行nosetests无法遍历该目录下面以“test”开头的目录或者文件并执行文件中的测试. 1 # nosetests -v 2 3 ---------------------------------------------------------------------- 4 Ran 0 tests in 0.000s 5 6 OK 而在windows下面是可以的: 1 nosetests -v 2 here ... ok

linux下为目录和文件设置权限

chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod mode file|dir 改变所有子目录的权限: chmod mode dir -R                  注意后面加了个-R参数 参数就是权限模式 mode = 777 or 752 ,666,,, mode 的三个数字,分别表示owner,group,others所具有的权限. 1 = x 执行 2 = w 写 4 = r 读,比如owner具有所有权限,1+2+4=7, 又比如gro

C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名

1.实现把指定文件夹下的所有文件复制到指定路径下 1 public static void copyFiles(string path) { 2 DirectoryInfo dir = new DirectoryInfo(path); 3 if (!dir.Exists) 4 return; //获得指定文件夹内的所有的子目录信息 5 DirectoryInfo[] dirs = dir.GetDirectories(); //获得指定文件夹内所有的文件信息 6 FileInfo[] files