You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在react-native-blob-util中获取旧版存储路径?

解决react-native-blob-util中LegacyDownloadDir返回undefined的问题

核心原因

LegacyDownloadDir 并非默认可用属性,它需要在Android项目中开启旧版外部存储访问模式后才会被初始化;同时官方TypeScript类型定义默认未包含该字段,所以会出现类型识别报错。

具体解决步骤

1. 配置Android项目权限与存储模式

打开android/app/src/main/AndroidManifest.xml:

  • 添加适配Android 32及以下版本的存储权限:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    
  • 在<application>标签内开启旧版存储访问模式:
    <application
      ...
      android:requestLegacyExternalStorage="true"
      ...>
    

2. 修复TypeScript类型识别问题

在项目根目录或src文件夹下创建类型声明文件(比如react-native-blob-util.d.ts),扩展原有类型:

declare module 'react-native-blob-util' {
  import type { Directories as OriginalDirectories } from 'react-native-blob-util';

  export interface Directories extends OriginalDirectories {
    LegacyDownloadDir?: string;
  }
}

3. 重新编译项目

执行命令清理缓存并重新构建Android项目:

cd android && ./gradlew clean && cd .. && npx react-native run-android

完成以上操作后,再次调用ReactNativeBlobUtil.fs.dirs.LegacyDownloadDir即可获取到/storage/emulated/0/Download/这个旧版下载目录路径。


内容的提问来源于stack exchange,提问作者Abderrahim Ajakka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:05:19