FileSystemManager.open
基础库 3.74.0 开始支持本方法,这是一个异步方法。
打开文件,返回文件描述符
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 | 无 |
相关教程 | 无 |
语法
FileSystemManager.open(options)
参数说明
options 为 object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
filePath | string | 是 | 文件路径 | 3.73.0 | |
flag | enum | r | 否 | 文件系统标志,默认值: 'r' | 3.73.0 |
success | function | 否 | 接口调用成功的回调函数 | 3.74.0 | |
fail | function | 否 | 接口调用失败的回调函数 | 3.74.0 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 3.74.0 |
flag 的合法值
值 | 说明 | 最低支持版本 |
---|---|---|
a | 打开文件用于追加。 如果文件不存在,则创建该文件 | 3.73.0 |
wx | 类似于 'w',但如果路径存在,则失败 | 3.73.0 |
w | 打开文件用于写入。 如果文件不存在则创建文件,如果文件存在则截断文件 | 3.73.0 |
ax | 类似于 'a',但如果路径存在,则失败 | 3.73.0 |
a+ | 打开文件用于读取和追加。 如果文件不存在,则创建该文件 | 3.73.0 |
ax+ | 类似于 'a+',但如果路径存在,则失败 | 3.73.0 |
as | 打开文件用于追加(在同步模式中)。 如果文件不存在,则创建该文件 | 3.73.0 |
as+ | 打开文件用于读取和追加(在同步模式中)。 如果文件不存在,则创建该文件 | 3.73.0 |
r | 打开文件用于读取。 如果文件不存在,则会发生异常 | 3.73.0 |
r+ | 打开文件用于读取和写入。 如果文件不存在,则会发生异常 | 3.73.0 |
w+ | 打开文件用于读取和写入。 如果文件不存在则创建文件,如果文件存在则截断文件 | 3.73.0 |
wx+ | 类似于 'w+',但如果路径存在,则失败 | 3.73.0 |
回调成功
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "FileSystemManager.open:ok" | 3.73.0 |
fd | string | 文件描述符 | 3.73.0 |
回调失败
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "FileSystemManager.open:fail" + 详细错误信息 | 3.73.0 |
错误码
errNo | errMsg | 说明 | 最低支持版本 |
---|---|---|---|
20001 | invalid param | 参数错误 | 3.74.0 |
21100 | no such file or directory ${path} | 文件/目录不存在,或者目标文件路径的上层目录不存在 | 3.74.0 |
21101 | Path permission denied | 传入的路径没有权限 | 3.74.0 |
21102 | system error | 小游戏框架内部错误,有需要请创建工单咨询 | 3.74.0 |
21103 | illegal operation on a directory | 不可对目录进行此操作(例如,指定的 filePath 是一个已经存在的目录) | 3.74.0 |
21104 | illegal operation on a package directory | 不可对代码包目录进行此操作 | 3.74.0 |
21105 | file already exists ${dirPath} | 已有同名文件或目录 | 3.74.0 |
21106 | excced max concurrent fd limit | fd数量已达上限 | 3.74.0 |
21107 | invalid flag | 无效的 flag | 3.74.0 |
21108 | permission denied when open using flag | 无法使用 flag 标志打开文件 | 3.74.0 |
扫码体验
请使用字节宿主APP扫码
代码示例
const fs = tt.getFileSystemManager(); fs.open({ filePath, success: res => { console.log('fd', res.fd); }, fail: err => { console.log('fail', err); } })