从 Android 中的某个位置访问文件

Posted

技术标签:

【中文标题】从 Android 中的某个位置访问文件【英文标题】:Access files from a location in Android 【发布时间】:2021-09-22 07:59:07 【问题描述】:

我正在尝试使用以下代码访问(仅读取)android 设备中某个位置的可用文件列表,但我得到 null 作为响应。如果我遗漏了什么,请纠正我。我在 Android 11 中尝试了以下代码,我希望它应该从 Android 9 开始工作。

File[] files = new File("/storage/emulated/0/Android/data/MyApp/files/").listFiles();

上面的代码我得到了空值。我还在我的 AndroidManifest.xml 文件中添加了以下权限。

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

在代码中也有权限授予请求,并在AndroidManifest的应用标签中添加了以下属性。

android:requestLegacyExternalStorage="true"

添加以上所有内容后,我仍然面临从给定位置获取文件的问题。 我是否以正确的方式做这件事?我的目标是在应用程序启动后访问这些文件,这些文件将由用户使用 ADB 命令手动添加到该位置。

【问题讨论】:

【参考方案1】:

请试试这个方法

对于内部文件(/data/data)

File[] files = getApplicationContext().getFilesDir().listFiles();

对于外部文件 (/sdcard)

File[] files =  getApplicationContext().getExternalFilesDirs("your path");

【讨论】:

谢谢罗兰。我使用了 getApplicationContext().getExternalFilesDir("").listFiles()。

以上是关于从 Android 中的某个位置访问文件的主要内容,如果未能解决你的问题,请参考以下文章

Android如何访问jpg中的位置数据

项目在 Android Studio 模拟器中的位置错误

LocationListener 在 android 服务中的某个时间后不提供更新

为远程 html 页面从 Android 中的本地资产加载 jQuery

Android 数据库 Room从入门到进阶

把我的 php 文件放在哪里?