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); } })
