已获取android.permission.READ_EXTERNAL_STORAGE、android.permission.WRITE_EXTERNAL_STORAGE权限;
设备:
1、红米K50Ultra,Android13
2、华为matePad,HarmonyOS 3.0.0
写入读取文件是应用私有文档目录,对应常量plus.io.PRIVATE_DOC;
用FileReader方法读取文件的时候,onloadstart回调都未触发,请问是什么情况?
方法:
// 写入文件方法
plus.io.requestFileSystem(
plus.io.PRIVATE_DOC,
(fs) => {
fs.root.getFile(
"test/test.txt",
{
create: true, // 文件不存在则创建
},
(fileEntry) => {
// 文件在手机中的路径
console.log("最后文件在手机中的路径========", fileEntry.fullPath);
fileEntry.createWriter((writer) => {
// 写入数据
writer.write(JSON.stringify("测试数据-1"));
// 写入文件成功完成的回调函数
writer.onsuccess = (e) => {
console.log("写入数据成功:", e);
};
writer.onerror = (e) => {
console.log("写入数据失败:", e);
};
});
},
(e) => {
console.log("错误0", e);
}
);
},
(e) => {
console.log("报错1", e);
}
);
// 读取文件方法
plus.io.requestFileSystem(
plus.io.PRIVATE_DOC,
(fs) => {
fs.root.getFile(
"test/test.txt",
{
create: true, // 文件不存在则创建
},
(fileEntry) => {
// 文件在手机中的路径
console.log("最后文件在手机中的路径========", fileEntry.fullPath);
fileEntry.file(
(file) => {
console.log("读取文件");
const fileReader = new plus.io.FileReader();
fileReader.onloadstart((data) => {
console.log("开始读取", data);
});
fileReader.onload((data) => {
console.log("读取成功:", data);
});
fileReader.onerror((e) => {
console.log("读取失败:", e);
});
fileReader.readAsText(file);
},
(e) => {
console.log("e:", e);
}
);
},
(e) => {
console.log("错误0", e);
}
);
},
(e) => {
console.log("报错1", e);
}
);
2 个回复
1***@qq.com - 河南信阳光山
请问下 读取根目录的文件呢
7***@qq.com
这官网压根不待的回复, 安卓10以后的限制,只能读取app私有目录,文档类型什么的只能android/data/xxx 里面 其他格式没试过 有成功的踢一脚