嗨,我正在使用Ionic Vue和电容器制作一个应用程序,从我的Android设备读取文件。我已经添加了文件的读写权限。
我还将我的文件放在路径Phone/Android/data/io.ion.starter/files中,这也是在ionic中写入文件的代码成功创建示例文件的路径。
最后,我使用了以下功能来尝试列出应用程序文件夹中的所有文件:
try {
const fList = await Filesystem.readdir({
path: '',
directory: Directory.External,
}).then(res => {
console.log("CALLBACK READING");
console.log(res);
console.log("%%%%%%%%%%%%%%%%%%%%%%");
}).catch(err => {
console.log("Error reading the file directory");
console.log(err);
});
console.log("FILES TESTED OUTSIDE");
console.log(fList);
console.log("###################");
} catch(err){
console.log("ERROR READING FILE");
console.log(err);
}
尽管如此,CALLBACK READING函数不返回任何内容,而FILES TESTED OUTSIDE块返回";未定义";。我花了一整天的时间测试不同的路由和应用程序组合,我的文件是手动创建的,并放在我的应用程序文件夹中。我已经测试过写一个文件,它可以工作,但似乎无法读取目录中的文件。
我错过了什么?还有什么方法可以更容易地调试错误吗?
修改file_paths.xml文件并添加对根目录的访问权限,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<root-path name="root" path="." />
</paths>
该文件位于android/app/src/main/res/xml中您还需要在Android.Manifest中向External添加权限(对Android<=10有效(android:requestLegacyExternalStorage="true">