
obj=io.popen("cd") --如果不在交互模式下,前面可以添加local
path=obj:read("*all"):sub(1,-2)--path存放当前路径
obj:close() --关掉句柄
上述原理是利用Windows的cd命令返回工作目录;至于sub(1,-2)是为了去掉换行符
当然如果你有lua socks或者你有lfs(注意匹配你的Lua版本),你可以使用lfs(Lua File System)
require("lfs")
path=lfs.currentdir()
这个则是Lua文件系统库中的函数。
……就是这样
--移除文件function Mkidr.removeFile(path)
io.writefile(path, "")
os.remove(path)
end
--读取文件
function Mkidr.readFile(path)
local file = io.open(path, "rb")
if file then
local content = file:read("*all")
io.close(file)
return content
end
return nil
end
-- Lua lfs 库的使用
lfs.attributes(filepath [, aname]) 获取路径指定属性
lfs.chdir(path) 改变当前工作目录,成功返回true,失败返回nil加上错误信息
lfs.currentdir 获取当前工作目录,成功返回路径,失败为nil加上错误信息
lfs.dir(path) 返回一个迭代器(function)和一个目录(userdata),每次迭代器都会返回一个路径,直到不是文件目录为止,则迭代器返回nil
lfs.lock(filehandle, mode[, start[, length]])
lfs.mkdir(dirname) 创建一个新目录
lfs.rmdir(dirname) 删除一个已存在的目录,成功返回true,失败返回nil加上错误信息
-- Lua io *** 作
io.open (filename [, mode])
功能:按指定的模式打开一个文件,成功则返回文件句柄,失败则返回nil+错误信息
mode:
"r": 读模式 (默认)
"w": 写模式
"a": 添加模式
file:write(...)
功能:按指定的参数格式输出文件内容,参数必须为字符或数字,若要输出其它值,则需通过tostring或string.format进行转换
file:close()
功能:关闭文件,lua有垃圾自动回收........
io.exists()
测试文件是否存在,如果存在返回true
-- Lua os *** 作
os.remove (filename)
功能:删除文件或一个空目录,若函数调用失败则返加nil加错误信息
os.rename (oldname, newname)
功能:更改一个文件或目录名,若函数调用失败则返加nil加错误信息
os.setlocale (locale [, category])
功能:设置程序的当前设置,函数返回最新的值,失败则返回nil
os.time ([table])
功能:按table的内容返回一个时间值(数字),若不带参数则返回当前时间table的字段:
',就可以调用了。看看error是什么,根据信息去调错。lua编译器也就是解释器,所谓脚本就是加载时编译嘛!
另:调试脚本的方法就是靠log来分析了。lua调用函数当然用文本,要不怎么调。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)