指南-Luat二次开发教程指南-功能开发教程-文件系统

文件系统操作

简介

模块具有64Mb的flash空间,除了模块自身程序占用以外还剩余了一部分空间可供用户使用,AT和LUAT均支持进行操作。


API说明

luat的文件操作来自标准lua的io库直接按照标准语法使用即可,
除了标准语法,luat提供了几个更方便的文件操作接口可以使用。

API接口描述
io.exists(path)判断文件是否存在
io.readFile(path)读取文件并返回文件的内容
io.writeFile(path, content, mode)写入文件指定的内容,默认为覆盖二进制模
io.pathInfo(path)将文件路径分解为table信息
io.fileSize(path)返回文件大小
io.readStream(path, offset, len)返回指定位置读取的字符串

详细的API介绍见io API章节

实现流程

  1. 通过rtos.make_dir()接口创建文件目录
  2. 通过io.writeFile()接口写文件内容
  3. 通过io.exists()接口判断文件是否存在
  4. 文件存在的情况通过调用如下接口获取相应内容
    io.readFile()读取文件内容
    io.fileSize()接口读取文件长度
    io.pathInfo()接口读取文件信息
    io.readStream()接口读取指定位置字符串

示例

  1. 创建目录
local USER_DIR_PATH = "/user_dir"
rtos.make_dir(USER_DIR_PATH)
  1. 写文件内容,文件不存在的情况,会创建文件
io.writeFile(USER_DIR_PATH.."/test.txt","0123456789")
  1. 判断文件是否存在
io.exists(USER_DIR_PATH.."/test.txt")
  1. 读取文件内容
local fileval = io.readFile(USER_DIR_PATH.."/test.txt")
  1. 读取文件长度
local filelen = io.fileSize(USER_DIR_PATH.."/test.txt")
  1. 读取文件信息
local fileinfo = io.pathInfo(USER_DIR_PATH.."/test.txt")
  1. 读取指定位置字符串
local fileStr = io.readStream(USER_DIR_PATH.."/test.txt", 3, 5)

常见问题

  1. 不同的core固件分配的文件系统空间不尽相同,可通过rtos.get_fs_free_size()返回文件系统的剩余空间,单位为字节。
  2. 为什么读文件失败
  • 如果读取的是本地烧录的文件,检查下文件有没有烧录以及完整路径是否正确
  • 如果读取的是程序运行过程中动态创建的文件,检查下文件是否创建成功【文件系统空间不足可能会导致文件创建失败】以及完整路径是否正确
  1. /#lua_user# 目录为什么重刷固件还存在,它是特殊目录吗?
  • #lua_user#目录就是一个普通目录,在/目录下,操作方式与其他目录一致,唯一的区别是这个目录模块会保护它,当重新烧录固件时它还存在。

相关资料以及购买链接

文件系统 API说明

Air724UG开发板
Air724 开发板使用说明

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值