Android从DCIM获取文件列表

问题描述 投票:1回答:2

我想从DCIM目录中获取所有文件列表,但我不知道为什么,它不起作用。我正在使用下面的示例,但没有数据。

Environment.DIRECTORY_DCIM 

要么

Environment.getExternalStorageDirectory().getAbsolutePath()

我也尝试了其他选择,但没办法。有人可以帮帮我吗?

java android folder
2个回答
7
投票

要检索Directory的内容,您可以使用

File dcim = getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
if (dcim != null) {
  File[] pics = dcim.listFiles();
  if (pics != null) {
     for (File pic : pics) {
     }
  }
}

请注意,Environment.DIRECTORY_DCIM尚不存在。

编辑:

API level 19开始,Android强制使用READ_EXTERNAL_STORAGE访问公共存储上的文件夹。从文档:

从API级别19开始强制执行此权限。在API级别19之前,不会强制执行此权限,并且所有应用程序仍具有从外部存储读取的权限。您可以通过在运行Android 4.1或更高版本的设备上的“设置”应用中的“开发者”选项下启用“保护USB存储”来强制执行权限来测试您的应用。

您可以添加它或WRITE_EXTERNAL_STORAGE,如@JordiCastilla所指出的那样,它将授予您对目录的读写访问权限


2
投票

最后我找到了解读SD卡DCIM目录的解决方案。也许这不是一个很好的选择,但例子是:

String secStore = System.getenv("SECONDARY_STORAGE");
File images = new File(secStore+"/DCIM/Camera");

然后你得到images.List();

希望会帮助别人。

谢谢大家和问候

© www.soinside.com 2019 - 2024. All rights reserved.