当我试图下载文件时.它不是存储在路径/data/data/[Application Package name folder]/files中,而是在/storage/emulated/0/Android/data/[Application Package name folder]/files中下载.

我试过使用rn-fetch-blob套餐和react-native-blob-util套餐.我收到的错误是不受支持的路径.作为参考,我附上了错误屏幕截图

enter image description here

Below is the code I have written for download

const downloadRecord = async () => {
  let FILE_URL = `https://www.africau.edu/images/default/sample.pdf`;

  let file_ext = getFileExtention(FILE_URL);
  file_ext = "." + file_ext[0];
  let extension = file_ext;
  let date = new Date();
  let Name = bookID; // + Math.floor(date.getTime() + date.getSeconds() / 2);

  try {
    const { config, fs } = ReactNativeBlobUtil;
    const DownloadDir =
      Platform.OS == "ios"
        ? `${fs.dirs.LibraryDir}/name/`
        : `${fs.dirs.DownloadDir}/name/`;
    let fileName = Name + extension;
    let pdfPath = DownloadDir + fileName;
    console.log("Path", pdfPath);
    let options = {
      fileCache: true,
      addAndroidDownloads: {
        //Related to the Android only
        useDownloadManager: true,
        notification: true,
        path: pdfPath,
        description: "downloading...",
      },
      path: pdfPath,
    };

    //console.log(FILE_URL)
    config(options)
      .fetch("GET", FILE_URL)
      .progress((received, total) => {
        console.log("progress method", (received / total) * 100);
      })
      .then((res) => {
        //console.log('res -> ', JSON.stringify(res));
      })
      .catch((error) => {
        Toast.show("Error downloading Training Record.");
      });
  } catch (error) {}
};

推荐答案

不幸的是,你不能使用/data/data/....对于现有的图书馆来说,这并不是缺乏能力./data路径是系统路径,需要root访问才能打开/读取或修改它.

我不知道您有什么需要这个解决方案来存储文件在那里,但FileSystem.DocumentDirectoryPath是一个跨平台和良好的目录用于下载文件.

FileSystem名分别是:

import FileSystem from 'react-native-fs';

Android相关问答推荐

当我的Log.i()不在主线程中时,如何在我的logcat中显示它?

懒惰列的滚动到项目不按预期工作'

当我在Android上运行应用程序时,组件会随机调整大小和移动

在卡片上创建圆角底部边框

Android和Rust,OpenSSL交叉编译在ARM V7上链接失败

如何在初始合成期间在可组合函数中调用/获取远程API中的数据[防止无限重组]

Jetpack Compose:根据盒子中的最大视图固定宽度和高度

如何防止在Android Studio中设置kotlin断点时优化变量

安卓Azure通讯聊天UI库导入?

Jetpack Compose 使用 SavedStateHandle 发送返回结果不适用于 ViewModel 中注入的 SavedStateHandle

判断 AAR 元数据时发现 Android 问题:androidx.core:core:1.12.0-alpha01 和 androidx.core:core-ktx:1.12.0-alpha01

无法找到方法 ''java.io.File > org.jetbrains.kotlin.gradle.tasks.KotlinCompile.getDestinationDir()

Jetpack Compose Arc 进度条动画(如何重启动画)

如何放置在柱子的角落(底端)

在compose中,为什么修改List元素的属性,LazyColumn不刷新

如何在 compose 中使用 BottomSheetScaffold 为底页设置半展开高度?

TextField 溢出和软包装不适用于 Compose 约束布局

禁用通知权限后启动前台服务导致崩溃(Android 13)

在 Compose 中使用 DeepLink 会导致无法向后导航

Google Play 服务登录在 Unity Android 上无法正常运行