Android - 由于errno = 13,读取文件列表失败

时间:2015-01-08 11:21:16

标签: android file permissions

我有应用程序,它应该从外部存储器中读取文件列表:

<code>
    File x = Environment.getExtrernalStorageDirectory();
    System.out.println(x.getAbsolutePath());
    File[] files = x.listFiles();
</code>

作为输出我得到:

<code>
    /storage/emulated/0
    fail readDirectory() errno=13
</code>

我使用来自here的isExternalStorageWritable和isExternalStorageReadable,它们都返回true。

我的平板电脑没有root,但它处于开发者模式。我应该首先以某种方式设置目录吗?

也许WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE的权限不够?

当我使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) - ofc时,同样的事情。然后输出包含/ storage / emulated / 0 / Download

4 个答案:

答案 0 :(得分:2)

我今天遇到过类似的问题。我注意到我的清单包含android:maxSdkVersion =“18”属性。

例如: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18" />

通过删除它已解决。希望这对其他人也有帮助..

答案 1 :(得分:0)

试试这个:

String root_sd_path = Environment.getExternalStorageDirectory().toString();
file = new File( root_sd_path + "/" ) ;       
File list[] = file.listFiles();

答案 2 :(得分:0)

我今天遇到了同样的问题。问题出在我的清单文件中。我不小心将<uses-permissions>标记放在<application>标记内。

答案 3 :(得分:0)

我遇到了这个问题,但在我的情况下,我没有将权限代码放在AndroidManifest.xml上,当我这样做时,我的应用运行没有任何错误。