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

Android变声器开发调用new File()找不到文件,如何定位存储目录?

test.pcm存储路径说明及查找方案

1. 代码对应默认存储路径

你代码中调用Environment.getExternalStorageDirectory()指向的是安卓设备内置存储的根目录,对应文件系统的绝对路径为/storage/emulated/0/,理论上生成的test.pcm直接存放在根目录下,不会进入任何二级子文件夹。

2. 找不到文件的核心原因

你贴出的代码只有读取test.pcm的逻辑,没有任何将录音数据写入生成该文件的代码,首先请确认你已经单独实现了pcm文件的写入逻辑,排除文件本身不存在的情况。如果已经实现写入逻辑仍找不到,基本是权限和系统版本限制导致写入失败:

  • 安卓6.0~安卓9:需要动态申请READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,仅在AndroidManifest中声明无效,未授权的情况下写入操作会被系统拦截,文件不会生成。
  • 安卓10及以上:谷歌引入了分区存储机制,Environment.getExternalStorageDirectory()被废弃,普通应用默认无法直接写入内置存储根目录,就算申请了旧的存储权限也无法写入,因此文件不会生成。

3. 查找文件的方法

  • 安卓9及更低版本,且已经授予存储权限:打开系统自带文件管理器,进入「内部存储」根目录,直接按文件名搜索test.pcm即可找到。
  • 安卓10及以上版本:
    • 临时方案:在AndroidManifest中添加MANAGE_EXTERNAL_STORAGE权限,引导用户手动开启「所有文件访问权限」后,写入的文件仍会出现在内置存储根目录。
    • 合规方案:将存储路径替换为应用专属外部存储目录,代码修改为File file = new File(getExternalFilesDir(null), "test.pcm");,该路径无需额外申请权限即可读写,对应文件存放位置为「内部存储/Android/data/你的应用包名/files/」,进入对应路径即可找到文件。
  • 开发阶段可以直接打开Android Studio的Device File Explorer,进入/storage/emulated/0/目录直接搜索对应文件,无需在手机端操作。

内容的提问来源于stack exchange,提问作者Abdellah SAYOUL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:36:03