基于 AndroLua
的 Android/data
文件操作模块
2.0.4
(2023-11-11)- 修复
Android 11
兼容性问题
- 修复
2.0.3
(2023-09-05)- 修复读取内容乱码的Bug
2.0.2
(2023-09-04)- 修复
writeBytes
方法的异常
- 修复
2.0.1
(2023-08-31)- 修复若干Bug
2.0.0
(2023-08-30)- 适配
Android 13
- 重构项目
- 适配
权限申请与实例化
local afs = require "afs"
-- 留空即为根目录
afs.check('package')
-- 请求并授权
afs.request('package', afs.save)
-- 请求并回调
afs.request('package', function(...)
if afs.save(...) then
-- 授权成功
else
-- 授权失败
end
end)
-- 返回节点对象
local dir = afs.open('package/path/path')
节点操作与IO
-- 返回节点对象
local file = dir:open('path/file.txt')
-- 创建节点并返回对象
-- 创建文件夹节点
local images = dir:create('images/')
-- 创建文件节点
local log = images:create('log.txt')
-- 使用当前节点创建新文件
local new = dir:open('new.txt')
new:create()
-- 返回新的节点对象
dir:rename('old', 'new')
-- 当前节点是否为文件
dir:isFile()
-- 子节点是否为文件
dir:isFile('demo.avi')
-- 删除节点并返回结果
-- 删除当前节点
file:remove()
-- 删除子节点
dir:remove('demo.avi')
-- 判断节点是否存在并返回结果
-- 当前节点是否存在
file:exists()
-- 子节点是否存在
dir:exists('demo.avi')
-- 返回列表
dir:list()
-- 文件大小
file:length()
-- 文件子节点大小
dir:length('demo.avi')
-- 修改时间
file:lastModified()
-- 子节点修改时间
dir:lastModified('demo.avi')
提示:文件操作会自动调用该方法
--- 可读
file:IO(afs.READ)
--- 可写
file:IO(afs.WRITE)
--- 可读写
file:IO(afs.READ | afs.WRITE)
节点根据读写权限将会拥有以下对应成员
fis
文件输入流fos
文件输出流fic
文件输入通道foc
文件输入通道
提示:目标可以是节点对象和文件通道
-- 打开文件节点
local input = dir:open('in.txt')
local output = dir:open('out.txt')
-- 复制内容到文件节点
input:copyTo(output)
-- 关闭节点IO
input:close()
output:close()
-- 读取全部
file:read()
-- 读取6字节(效率低)
file:read(6)
-- 读取6字节(仅文本)
file:readString(6)
-- 读取到字节数组
local bytes = byte[4096]
file:readBytes(bytes)
-- 写入字符串(效率低)
file:write('测试')
-- 写入字符串(仅文本)
file:wrifilering('文本')
-- 写入字节数组
local bytes = byte[4096]
file:writeBytes(bytes)
提示:返回跳转后位置
-- 不跳转,仅返回位置
file:seek()
-- 从头部开始
file:seek('set', 1)
-- 从当前位置开始
file:seek('cur', 0)
-- 从尾部开始
file:seek('end', -1)
-- 写入缓冲到磁盘
file:flush()
-- 截断到位置 0
file:truncate(0)
-- 关闭节点IO
file:close()