lua 获取指定路径下的所有文件夹

一、io.popen 函数获取

  io.popen 是 Lua 中的一个函数,它允许你执行一个外部命令并将命令的输出作为流处理。如果你想在 Lua 中通过 io.popen 执行 dir 命令(linux 命令是ls )来获取指定文件夹下的所有文件及其路径,你可以构造一个适用于 Windows 环境下的 dir 命令,并通过 io.popen 执行这个命令。

-- 在 Lua 中调用 dir 命令并获取输出
local handle = io.popen('dir /b /s "C:\\path\\to\\your\\folder\\"')
local files = {}
for file in handle:lines() do
    files[#files + 1] = file
end
handle:close()

-- 现在 'files' 数组包含了文件夹下所有文件的完整路径

这里的 /b 参数表示简洁格式(只显示文件名),而 /s 表示包括所有子目录的内容。请注意,你需要将 "C:\\path\\to\\your\\folder\\" 替换为你要查找的实际文件夹路径。

如果你是在非 Windows 系统下,比如 Unix/Linux 系统,那么应使用 ls 或 find 命令代替 dir

-- 在 Unix/Linux 系统中获取文件夹及其子文件夹下的所有文件
local handle = io.popen('find "path/to/your/folder/" -type f')
-- ... 同样的处理逻辑 ...

在这个例子中,find 命令用于查找指定目录及其子目录下所有的普通文件 (-type f)。

二、使用lfs(LuaFileSystem)库来获取

local lfs = require "lfs"

function listFolders(path)
    local folders = {}
    local attr = lfs.attributes(path)
    
    if attr.mode == "directory" then
        table.insert(folders, path)
        
        for file in lfs.dir(path) do
            if file ~= "." and file ~= ".." then
                local f = path..'/'..file
                local attr = lfs.attributes(f)
                if attr.mode == "directory" then
                    listFolders(f)
                end
            end
        end
    end

    return folders
end

-- 使用示例
local path = "/your/specified/path"
local folders = listFolders(path)

for _, folder in ipairs(folders) do
    print(folder)
end

确保你已经安装了lfs库,如果没有安装,你可以通过LuaRocks来安装它

luarocks install luafilesystem

这段代码会打印出指定路径下所有的文件夹路径。如果你只想获取直接子文件夹,可以在listFolders函数中去掉对lfs.dir的递归调用。

相关推荐

  1. lua 获取指定路径所有文件夹

    2024-03-28 05:34:04       21 阅读
  2. 获取文件夹所有文件路径

    2024-03-28 05:34:04       40 阅读
  3. 【Matlab】加载路径所有指定文件

    2024-03-28 05:34:04       36 阅读
  4. [python日常]获取指定文件夹指定后缀文件

    2024-03-28 05:34:04       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-28 05:34:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-28 05:34:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-28 05:34:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-28 05:34:04       20 阅读

热门阅读

  1. LEETCODE-DAY35

    2024-03-28 05:34:04       15 阅读
  2. 3、RabbitMQ_工作模式

    2024-03-28 05:34:04       17 阅读
  3. Kafka、ActiveMQ、RabbitMQ 及 RocketMQ区别比较

    2024-03-28 05:34:04       18 阅读
  4. LaMDA: Language Models for Dialog Applications

    2024-03-28 05:34:04       18 阅读
  5. win10 docker zookeeper和kafka搭建

    2024-03-28 05:34:04       18 阅读
  6. AI大语言模型工程师学习路线

    2024-03-28 05:34:04       20 阅读
  7. go |struct embedding、generics、goroutine

    2024-03-28 05:34:04       20 阅读