Unsupported path storage/emulated/0/test
Android APIv29 FileNotFoundException EACCES (Permission denied)
https://github.com/joltup/rn-fetch-blob/issues/508
你好,
在我的应用程序中,当用户点击按钮时,API调用创建一个csv字符串并将其下载到目录
听到的是我的代码与模拟器(Android 8)和相同的代码不与我的移动的(Android 10)工作
const pathToWrite = `${RNFetchBlob.fs.dirs.DownloadDir}/file.csv`;
const csvString = data
.map((item) => {
return `${item.map((d) => d)}\n`;
})
.join('');
console.log(csvString);
RNFetchBlob.fs.writeFile(pathToWrite, csvString, 'utf8').then(() => {
RNFetchBlob.android.addCompleteDownload({
title: 'ebol.csv',
description: 'Download complete',
mime: 'application/scv',
path: pathToWrite,
showNotification: true,
});
console.log(`wrote file ${pathToWrite}`);
});
我尝试了静态路径
const pathToWrite =
'file:///storage/emulated/0/Android/data/<package.name>/files/file.csv';
但仍然得到错误:
可能未处理的承诺拒绝(ID:2):错误:无法创建'file:///storage/emulated/0/Android/data/<package.name>/files/file.csv'的父目录promiseMethodWrapper@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:2242:45 writeFile@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:215561:42
1条答案
按热度按时间pvabu6sv1#
在阅读了许多博客后,我发现这个错误主要发生在使用“DownloadDir”而不是其他人。由于需要将我的下载文件放置在“DownloadDir”中,我尝试添加一个子文件夹,它在Android版本〈= 12的RN 0.63.3测试中为我工作。