无法从目录中读取文件 - android

时间:2011-01-13 11:14:45

标签: android audio directory media-player directory-permissions

我在项目中有一个目录/ sdcard / audio。该目录包含一些音频(wav)文件 这是我要做的事情:
1.从目录中读取 2.播放wav文件。

我为访问目录而编写的代码如下:

String path_to_media = "/sdcard/audio/";
File dirEffectFiles = new File(path_to_media);   //gets a handle to the directory of effect files.
Log.v(this.toString(), "Getting into path = " + path_to_media);
Log.v(this.toString(), "Some details about the directory: path = " + dirEffectFiles.getPath()
                + " Can read: " + dirEffectFiles.canRead() + " list:" + dirEffectFiles.list()
                + " absolute path:" + dirEffectFiles.getAbsolutePath() + " is absolute:" + dirEffectFiles.isAbsolute()); 

我得到的输出是:

  

01-13 16:23:34.941:关于的一些细节   目录:path = / sdcard / audio   可以读取:false list:null absolute   路径:/ sdcard / audio是绝对的:true

我有以下问题:
1.如何使上述文件夹可读?设置dirEffectFiles.setReadable(true)
2.另请注意,上面的path_to_media是/ sdcard / audio /。打印时,最后一个“/”消失。这是一些内部解析的正常效果还是我应该担心?

非常欢迎任何帮助,
谢谢,
斯利拉姆。

2 个答案:

答案 0 :(得分:1)

您是否已向AndroidManifest.xml添加了正确的权限?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

此外,使用环境方法获取正确的SD卡路径是明智的:

Environment.getExternalStorageDirectory()

另外,你从中获得了什么:

dirEffectFiles.exists()

答案 1 :(得分:0)

上面提到的

/ sdcard / audio是项目目录中的目录。这种方法是错误的。必须使用adb(在命令提示符(windows)中)创建模拟sdcard的目录,如下所示:

  1. adb shell mkdir /sdcard/audio - 这将在sdcard /
  2. 中创建音频/子目录
  3. adb push "complete path of file name to be pushed" /sdcard/audio/file-name
  4. 对其他wavefiles重复此过程。
  5. 就是这样。您应该能够从mounted / sdcard目录中读取文件 @thoredge:谢谢你的帮助。