filesystemmanager.readfilesync(string filepath, string encoding, number position, number length)
基础库 或更高版本; 若版本较低,建议采取 兼容处理 。
支小宝客户端 支持
安诊儿客户端 支持
主体: 企业支付宝小程序 、 个人支付宝小程序
filesystemmanager.readfile 的同步版本。
string filepath
必填。
string encoding
非必填。
指定读取文件数据时使用的编码方式。如果不传 encoding,则以 arraybuffer 读取文件的二进制内容。
number position
非必填。支付宝 10.5.16、基础库 2.9.3 开始支持。
指定开始读取文件的位置,单位:byte; 读取范围为 [position, position length);有效值范围:[0, maxlength - 1] 。若不指定,则从文件开始位置读。
注:maxlength 为文件总字节长度。
number length
非必填。支付宝 10.5.16、基础库 2.9.3 开始支持。
指定读取文件的长度,单位:byte,有效值范围为 [1, maxlength];若不指定,则读到文件末尾。
object res
查看示例
属性 | 类型 | 描述 |
---|---|---|
data | string/arraybuffer | 读取的文件内容。 |
datatype | string | 输出的数据类型。以 arraybuffer 读取时为 "arraybuffer",其它为 "string"。 |
接口调用出错时,返回 object 对象,error
属性为错误码,errormessage
属性为错误消息。
错误码 | 错误消息 | 凯发app官方网站的解决方案 |
---|---|---|
2 | 未知的编码格式,请正确传参 | 请检查入参 encoding 的值是否正确。 |
无效参数 {filepath} | 请检查入参 filepath 。为代码包文件时,不支持相对文件路径。 |
|
3 | 未知错误 |
读文件出现异常 / 客户端内存不足时读大文件 会报此错误码,实际开发中,请注意做兼容处理 |
10022 | 文件/目录不存在。 |
请检查入参 filepath 对应的文件是否存在。 |
const fs = my.getfilesystemmanager();
const res = fs.readfilesync(`${my.env.user_data_path}/test.txt`, 'utf8');
console.log(res);
// 读取代码包文件时,需要在 mini.project.json 中配置文件路径。
const fs = my.getfilesystemmanager();
const res = fs.readfilesync('resource/test.txt', 'utf8');
console.log(res);
// mini.project.json 配置示例,下例中 source 为根目录(app.json 所在目录)下的文件夹,* 代表任意文件名。
{
"assetsinclude": ["source/*.txt", "source/*.json", "source/*.mp3"]
}
{
"data": "文件内容",
"datatype": "string",
"success": true
}
{
"error": 2,
"errormessage": "未知的编码格式,请正确传参"
}
-
tip读取小程序 代码包文件 前需在 mini.project.json 中配置可读取的小程序文件。
-
tipfilesystemmanager.readfilesync 的 position 和 length 从基础库 2.9.3 开始支持,可通过 my.caniuse 判断兼容性,如:
my.caniuse('getfilesystemmanager.return.readfile.object.position')
。 -
bugandroid: 10.5.30 以下版本,以 arraybuffer 读取本地文件时,会返回非正常 arraybuffer 数据,建议指定 encoding 以其他方式读取文件(如:base64),再转 arraybuffer。
-
bugandroid: 10.5.36 以下版本,以 arraybuffer 读取代码包文件时会报错,建议指定 encoding 以其他方式读取文件(如:base64),再转 arraybuffer。