文件操作 ======== 作者:闫国梁 最后更新时间:2020年7月6日 ## 文件系统操作 模块具有64Mb的flash空间,除了模块自身程序占用以外还剩余了一部分空间可供用户使用,AT和LUAT均支持进行操作。 LUAT方式 -------- luat的文件操作来自标准lua的io库直接按照标准语法使用即可。 除了标准语法,luat提供了几个更方便的文件操作接口可以使用。 ### io.exists(path)\ `¶ `__ 判断文件是否存在 - 参数 ========== ==================================== 传入值类型 释义 ========== ==================================== string path,文件全名例如:“/ldata/call.mp3” ========== ==================================== - 返回值 boole,存在为true,不存在为false - 例子 :: local ex = io.exists("/ldata/call.mp3") -------------- io.readFile(path)\ `¶ `__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 读取文件并返回文件的内容 - 参数 ========== ==================================== 传入值类型 释义 ========== ==================================== string path,文件全名例如:“/ldata/call.txt” ========== ==================================== - 返回值 string,文件的内容,文件不存在返回nil - 例子 :: local c = io.readFile("/ldata/call.txt") -------------- io.writeFile(path, content, mode)\ `¶ `__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 写入文件指定的内容,默认为覆盖二进制模式 - 参数 ========== ==================================== 传入值类型 释义 ========== ==================================== string path,文件全名例如:“/ldata/call.txt” string content,文件内容 string mode,文件写入模式默认“w+b” ========== ==================================== - 返回值 string,文件的内容 - 例子 :: local c = io.writeFile("/ldata/call.txt","test") -------------- io.pathInfo(path)\ `¶ `__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 将文件路径分解为table信息 - 参数 ========== ======================================= 传入值类型 释义 ========== ======================================= string path,文件路径全名例如:“/ldata/call.txt” ========== ======================================= - 返回值 table,{dirname=“/ldata/”,filename=“call.txt”,basename=“call”,extname=“.txt”} - 例子 :: loca p = io.pathInfo("/ldata/call.txt") -------------- io.fileSize(path)\ `¶ `__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 返回文件大小 - 参数 ========== ============================================== 传入值类型 释义 ========== ============================================== string path,文件路径全名例如:“/ldata/call.txt”,“test” ========== ============================================== - 返回值 number ,文件大小 - 例子 :: locan cnt = io.fileSize("/ldata/call.txt") -------------- io.readStream(path, offset, len)\ `¶ `__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 返回指定位置读取的字符串 - 参数 ========== ======================================= 传入值类型 释义 ========== ======================================= string path,文件路径全名例如:“/ldata/call.txt” number offset,要读取的指定位置 number len,要读取的字节数 ========== ======================================= - 返回值 string,返回要读取的数据,读取失败返回nil - 例子 无