java - 从 Android 中的某个位置访问文件
问题描述
我正在尝试使用以下代码访问(仅读取)在 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 命令手动添加到该位置。
解决方案
请尝试这种方式
对于内部文件(/data/data)
File[] files = getApplicationContext().getFilesDir().listFiles();
对于外部文件 (/sdcard)
File[] files = getApplicationContext().getExternalFilesDirs("your path");
推荐阅读
- powershell - 无法同时安装 Az 和 AzureRM 模块
- c# - 更新字段不存在的 MongoDB 集合
- react-native - mobile application logout after password change in website
- excel - how to add formula to the cell using vb
- postgresql - 将 lon/lat 集合转换为 geom/linestring
- php - Cannot declare class Error, because the name is already in use
- c# - SelectToPdf html to pdf conversion makes the font size slightly smaller. There is a way to configure font size from settings?
- python - Is there a known issue with memory leaks in Python dicts or Numpy iterators?
- r - EpiDisplay ordinal.or.display p 值的结果与 MASS 包中 polr 的计算 p 值存在差异?
- scala - IntelliJ 中 Scala 2.13.0 的 Gatling 兼容性问题