3.2.10文件系统操作¶
作者:闫国梁 最后更新时间:2020年7月6日 ## 文件系统操作
模块具有64Mb的flash空间,除了模块自身程序占用以外还剩余了一部分空间可供用户使用,AT和LUAT均支持进行操作。 ## AT方式 ### 创建一个文件:AT+FSCREATE 语法规则:
命令类型  | 
语法  | 
返回  | 
|---|---|---|
设置命令  | 
AT+FSCREATE=  | 
OK 或 ERROR  | 
查询命令  | 
AT+FSCREATE=?  | 
OK 或 ERROR  | 
参数定义:
参数  | 
定义  | 
取值  | 
对取值的说明  | 
|---|---|---|---|
文件名  | 
字符串型,不用加双引号,不超过 64 个字节  | 
读文件:AT+FSREAD¶
语法规则:
命令类型  | 
语法  | 
返回  | 
|---|---|---|
设置命令  | 
AT+FSREAD=,,,  | 
OK 或 ERROR  | 
查询命令  | 
AT+FSREAD=?  | 
OK 或 ERROR  | 
参数定义:
参数  | 
定义  | 
取值  | 
对取值的说明  | 
|---|---|---|---|
文件名  | 
字符串 型,不用加双引号,不超过 64 个字节  | 
||
0  | 
从文件开头读文件  | 
||
1  | 
从文件的位置开始读文件  | 
||
要读取的文件的长度  | 
不能大于 10240 个字节。如果文 件的实际长度小于该值,则 读取的是文件的实际长度。  | 
||
读文件的起始位置  | 
该取 值应小于文件的大小。当=0 时,该值无效  | 
||
读取的文件数据  | 
写文件:AT+FSWRITE¶
语法规则:
命令类型  | 
语法  | 
返回  | 
|---|---|---|
设置命令  | 
AT+FSWRITE=,, ,  | 
> (出现>后写入数据) OK 或 ERROR 或 TimeOut  | 
查询命令  | 
AT+FSWRITE=?  | 
OK 或 ERROR  | 
注意事项  | 
当输入数 据的长度达到时,自动写入。 或输入数据 的时间超过时,返回TimeOut  | 
参数定义:
参数  | 
定义  | 
取值  | 
对取值的说明  | 
|---|---|---|---|
文件名  | 
字符串型,不用加双引号,不超过 64 个字节  | 
||
写文件的模式  | 
0  | 
从文件的开头开始写文件  | 
|
1  | 
从文件的末尾开始写文件  | 
||
要写的数据的长度  | 
不能大于 10240 个字节  | 
||
输入持续的时间  | 
单位:秒  | 
获取可用空间大小:AT+FSMEM¶
执行命令用来获取文件系统剩余空间大小。 语法规则:
命令类型  | 
语法  | 
返回  | 
|---|---|---|
执行命令  | 
AT+FSMEM  | 
+FSMEM: OK  | 
查询命令  | 
AT+FSMEM=?  | 
OK 或 ERROR  | 
参数定义:
参数  | 
定义  | 
取值  | 
对取值的说明  | 
|---|---|---|---|
文件系统可用空间大小  | 
单位:字节  | 
删除文件:AT+FSDEL¶
语法规则:
命令类型  | 
语法  | 
返回  | 
|---|---|---|
设置命令  | 
AT+FSDEL=  | 
OK 或 ERROR  | 
查询命令  | 
AT+FSDEL=?  | 
OK 或 ERROR  | 
参数定义:
参数  | 
定义  | 
取值  | 
对取值的说明  | 
|---|---|---|---|
文件名  | 
字符串型,不用加双引号,不超过 64 个字节  | 
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")