lua中清空目录和递归创建目录

lua中的 lfs.mkdir lfs.rmdir只能针对单个目录,且lfs.rmdir不能清空文件夹

于是我想到了使用os.execute

递归创建目录如下
os.execute("mkdir ooxx\\ooxx\\ooxx\\ooxx) --windows
os.execute("mkdir -p ooxx/ooxx/ooxx) --unix,linux like

清空目录如下
os.execute("del ooxx\) --windows
os.execute("rm -rf ooxx\) --unix,linux like

工作是可以正常进行的,但是,使用os.execute有一个地方不爽。
就是如果执行的os.execute语句有输出,就会干扰控制台,导致后面的输出出现混乱。

为了避免这个问题,我只好手工递归创建目录了,清空目录也是遍历,然后逐个remove
我使用的是lua lfs方面的来遍历

虽然满足需求了,但我还是想向大家请教一下,有没有更好的方案。

lua中清空目录和递归创建目录,布布扣,bubuko.com

时间: 2024-08-05 08:23:49

lua中清空目录和递归创建目录的相关文章

[Perl系列—] 1. 清空目录及目录中的所有文件

Perl 删除单个文件和目录 Perl 删除单个文件的语法是: unlink 举例来说, 删除 D 盘 temp 目录下的 test.txt 的写法就是: unlink "D:/temp/test.txt" 如果要删除这个目录中所有的文件的话(不包含子目录) unlink glob "D:/temp/*" Perl 删除单个目录的语法是:  rm 类似, 删除上面的temp 目录的写法就可以是: rmdir "D:/temp" 看起来很简单, 但

递归打印lua中的table

递归打印lua中的table,并写到文件里: 1 local pairs_by_keys = function(inTable) 2 local temp = {} 3 for k, v in pairs(inTable) do 4 temp[#temp + 1] = k 5 end 6 7 local compare = function(a, b) 8 if type(a) == type(b) then 9 return a < b 10 elseif type(a) == "num

mkdir递归创建目录

mkdir递归创建目录 rmdir递归删除目录 -p:父目录为空时,一并进行创建-v:命令执行结果可视化mkdir -pv /tmp/x/y/zrmdir -p /tmp/x/y/z mkdir -pv {a,b}_{c,d}

Cocos2d-x Lua中使用标签

游戏场景中的文字包括了静态文字和动态文字.静态文字如下图所示游戏场景中①号文字“COCOS2DX”,动态文字如图4-1所示游戏场景中的②号文字“Hello World”.静态文字一般是由美工使用Photoshop绘制在背景图片上,这种方式的优点是表现力很丰富,例如:①号文字“COCOS2DX”中的“COCOS”.“2D”和“X”设计的风格不同,而动态文字则不能,而且静态文字无法通过程序访问,无法动态修改内容.动态文字一般是需要通过程序访问,需要动态修改内容.Cocos2d-x Lua可以通过标签

Lua非常有用的工具——递归打印表数据

Lua是一种非常小巧的语言.虽小,但五脏俱全. 在Lua中,我认为最最核心的数据结构就是表.表不仅可用作数组,还可以用作字典.Lua面向对象的实现也是用表实现的. 表对于Lua实在是太重要了!所以,在开发与调试过程中,让表可视化是非常迫切的需求.可Lua标准库里没有递归显示表中所有数据的函数. 于是,凭着对Lua的兴趣,我写了一个函数用于递归打印表中所有的数据. 废话不多话,如下为源代码: -----------------------------------------------------

php递归创建目录

/** * 递归创建目录 * @param [string] $path [创建的目录] * @return [type] [description] */ function mk_Dir($path){ // 如果目录存在返回 ture if(is_dir($path)){ return true; } // 如果上级目录存在 创建目录 if(is_dir(dirname($path))){ return mkdir($path); } // 递归 查找父目录 mk_Dir(dirname($

lua中实现异步资源读写

同样还是更新方面的需求,当我们检测到版本是新安装的以后,要进行upd目录清除.如果使用os.execute执行 rm -rf ooxx 是非常快的但由于os.execute一旦报错,那整个lua进程就杯具了.于是,我们最后换成了lfs来进行目录遍历并逐个删除.这样一来,文件数目如果过多,会等很久.于是想到使用异步的方式来处理. 一开始我尝试了lua的协程,我以为他和golang等语言中的一样.可以实现轻量级线程.于是我做了一个简单的测试 h = coroutine.creat( function

Lua中的loadfile,dofile,require使用,最后还有调试

1.loadfile---只编译,不运行. loadfile编译代码成中间码并且返回编译后的chunk作为一个函数,而不执行代码:另外loadfile不会抛出错误信息而是返回错误代号. loadstring与loadfile相似,只不过它不是从文件里读入chunk,而是从一个串中读入. 2.dofile----编译.运行. dofile,其实首先是利用loadfile进行编译,然后再运行代码.我们可以定义dofile如下: function dofile (filename) local f =

Lua中调用C函数

Lua利用一个虚拟的堆栈来给C传递值或从C获取值.每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回值压入这个栈(Lua从中拿到C函数调用结果). 于此相关的C API有几个比较重要的定义如下: (1)typedef struct lua_State lua_State; lua虚拟机(或叫解释器),可以理解为一个thread,和一个完整的Lua虚拟环境的执行状态. (2)typedef int