React Native rn-fetch-blob writeFile错误:未能创建父目录

dsekswqp  于 2023-03-31  发布在  React
关注(0)|答案(1)|浏览(169)

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

pvabu6sv

pvabu6sv1#

在阅读了许多博客后,我发现这个错误主要发生在使用“DownloadDir”而不是其他人。由于需要将我的下载文件放置在“DownloadDir”中,我尝试添加一个子文件夹,它在Android版本〈= 12的RN 0.63.3测试中为我工作。

path: `${RNFetchBlob.fs.dirs.DownloadDir}/anySubFolderName`

相关问题