【问题标题】:Android - reading list of files fails due to errno=13Android - 由于 errno=13 读取文件列表失败
【发布时间】:2015-01-08 11:21:15
【问题描述】:

我有应该从外部存储读取文件列表的应用程序:

<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

【问题讨论】:

  • 您找到解决方案了吗?我也有类似的问题。

标签: android file permissions


【解决方案1】:

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

例如: &lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18" /&gt;

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 这样的文件不存在,我得到:fail readDirectory() errno=2
    • 你的清单上有这个:
    • 是的,我有读取和写入的设置权限,而且 isExternalStorageWritable 和 isExternalStorageReadable 都返回 true。此外 SD 卡在 /storage/extSdCard 中,它在访问时也返回 errno = 13。
    • 同样的问题...仍然 errno=13。我开始怀疑,即使认为应用程序具有“JAVA”权限,系统仍然会检查 Android/Linux 权限,当我检查 linux 中的设置时:drwxrwx--x owner root group sdcard_r
    • 我很困惑。我的这个应用程序在是否具有用户权限时表现相同。另外,当我安装它时,它说它不需要任何权限?它不应该说它需要
    【解决方案3】:

    我今天遇到了同样的问题。问题出在我的清单文件中。我不小心把&lt;uses-permissions&gt; 标签放在&lt;application&gt; 标签里面。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        • 2019-03-27
        • 1970-01-01
        • 1970-01-01
        • 2021-03-04
        相关资源
        最近更新 更多