【问题标题】:How to get access to files in download directory in Android App如何在Android App中访问下载目录中的文件
【发布时间】:2019-05-16 08:49:08
【问题描述】:

我正在编写一个安卓应用程序。在应用程序中,我需要访问下载目录 \DOWNLOAD。我可以在 app 目录中读取和写入文件,当我请求根目录中的文件时,我会看到 DOWNLOAD 目录。 但是当我使用

 File[] files = new File("\DOWNLOAD").listFiles();

结果不是一个有效的数组而是空的。

我加了

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

到AndroidManifest.xml,我在手机上启用了存储权限。

我还需要做什么才能访问下载目录中的文件?

亲切的问候, 沃尔夫冈

【问题讨论】:

标签: android file-access


【解决方案1】:

好像加了

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

还不够。现在我另外使用以下代码在运行时请求此权限:

String[] requiredPermissions = { Manifest.permission.READ_EXTERNAL_STORAGE };    
ActivityCompat.requestPermissions(this, requiredPermissions, 0);

它又可以工作了:)

【讨论】:

    【解决方案2】:

    问题的解决方案是添加也

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

    到 AndroidManifest.xml 并使用

    Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).listFiles();
    

    感谢您的帮助!

    【讨论】:

    • 请注意,默认情况下,这对您在 Android Q 上不起作用,并且计划禁止所有适用于 Android R 及更高版本的应用。对外部存储的直接文件系统访问受到很大限制。请考虑切换到存储访问框架(ACTION_OPEN_DOCUMENTACTION_OPEN_DOCUMENT_TREE)。
    【解决方案3】:
    【解决方案4】:
    String home = System.getProperty("user.home");
    File file = new File(home+"/Downloads/" + fileName + ".txt");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-16
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 2015-07-24
      相关资源
      最近更新 更多