【发布时间】:2022-08-22 23:12:31
【问题描述】:
我正在使用 react native fs 从 sqllite db 导出和导入 json 格式的数据。 我正在将文件 MonthsData.json 写入和读取到 DownloadDirectoryPath。
只要我通过我的应用程序读取和写入数据,一切正常。
如果我使用此命令从我的电脑下载并上传备份文件
adb pull /storage/emulated/0/Download/MonthsData.json .
adb push .\\MonthsData.json /storage/emulated/0/Download/
当我尝试访问文件时
if (await getPermissions()) {
let result = await RNFS.readFile(
RNFS.DownloadDirectoryPath + \'/\' + filename,
\'utf8\',
);
async function getPermissions(): Promise<boolean> {
let isPermitedExternalStorage = await PermissionsAndroid.check(
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
);
if (!isPermitedExternalStorage) {
// Ask for permission
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
{
title: \'Storage permission needed\',
message: \'Can read ?\',
buttonNeutral: \'Ask Me Later\',
buttonNegative: \'Cancel\',
buttonPositive: \'OK\',
},
);
return granted === PermissionsAndroid.RESULTS.GRANTED;
}
return true;
}
我收到以下错误:
Error: ENOENT: /storage/emulated/0/Download/MonthsData.json: open failed: EACCES (Permission denied), open \'/storage/emulated/0/Download/MonthsData.json\'
如果我尝试使用命令列出文件
ls -la /storage/emulated/0/Download/
上传数据前后,所有者和权限始终相同
generic_x86_arm:/ $ ls -la /storage/emulated/0/Download/
total 12
-rw------- 1 u0_a149 u0_a149 6325 2022-02-20 14:34 MonthsData.json
我将不胜感激每一个帮助或建议。
标签: react-native android-permissions react-native-fs