(转)在lua中递归删除一个文件夹

Posted 程序喵星人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(转)在lua中递归删除一个文件夹相关的知识,希望对你有一定的参考价值。

原文地址:http://www.cocoachina.com/bbs/read.php?tid=212786

纯lua
纯 lua 其实是个噱头。这里还是要依赖 lfs(lua file sytem),好在 quick-cocos2d-x 已经包含了这个库。
lfs.rmdir 命令 和 os.remove 命令一样,只能删除空文件夹。因此实现类似 rm -rf 的功能, 必须要递归删除文件夹中所有的文件和子文件夹。
让我们扩展一下 os 包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require("lfs")
 
function os.exists(path)
    return CCFileUtils:sharedFileUtils():isFileExist(path)
end
 
function os.mkdir(path)
    if not os.exists(path) then
        return lfs.mkdir(path)
    end
    return true
end
 
function os.rmdir(path)
    print("os.rmdir:", path)
    if os.exists(path) then
        local function _rmdir(path)
            local iter, dir_obj = lfs.dir(path)
            while true do
                local dir = iter(dir_obj)
                if dir == nil then break end
                if dir ~= "." and dir ~= ".." then
                    local curDir = path..dir
                    local mode = lfs.attributes(curDir, "mode")
                    if mode == "directory" then
                        _rmdir(curDir.."/")
                    elseif mode == "file" then
                        os.remove(curDir)
                    end
                end
            end
            local succ, des = os.remove(path)
            if des then print(des) end
            return succ
        end
        _rmdir(path)
    end
    return true
end

以上是关于(转)在lua中递归删除一个文件夹的主要内容,如果未能解决你的问题,请参考以下文章

[转]lua元表代码分析

java删除文件夹下面的所有文件(转)

基于lua的网页脚本开发语言cgilua(转)

lua.e2加密文件怎么解密?

Nginx + Lua + redis (转)

Java.nio:最简洁的递归目录删除