3.1.11 文件系统操作

作者:闫国梁 最后更新时间: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 个字节

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

  • 例子