android – 在主存储和辅助存储上获取DCIM文件夹的路径

android – 在主存储和辅助存储上获取DCIM文件夹的路径,第1张

概述我正在编写一个应用程序,它应该上传由相机拍摄的照片,这些照片存储在内存和SD卡的DCIM / Camera文件夹中. 这意味着在每次上传之前,必须检查所有可用存储是否存在任何图像. 我使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)来访问主存储器,主存储器可以是SD卡或内部存储器(取决于设备). 我正在编写一个应用程序,它应该上传由相机拍摄的照片,这些照片存储在内存和SD卡的DCIM / Camera文件夹中.

这意味着在每次上传之前,必须检查所有可用存储是否存在任何图像.

我使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)来访问主存储器,主存储器可以是SD卡或内部存储器(取决于设备).

从文档:“注意:不要在这里混淆”外部“这个词.这个目录可以更好地被认为是媒体/共享存储.它是一个文件系统,可以容纳相对大量的数据,并在所有文件中共享应用程序(不强制执行权限).传统上这是一张SD卡,但它也可以在与受保护的内部存储不同的设备中实现为内置存储,并且可以作为文件系统安装在计算机上.

我的问题是,如何在不对路径进行硬编码的情况下访问辅助存储器以检查DCIM / Camera文件夹中是否存在图像,由于SD卡可能在不同的路径中进行模拟,因此无法正常工作.

解决方法 尝试
file [] aDirArray = ContextCompat.getExternalfilesDirs(context,null);

见http://developer.android.com/reference/android/support/v4/content/ContextCompat.html#getExternalFilesDirs(android.content.Context,java.lang.String)

请记住,未模拟外部存储(SD卡),并且所有用户都可以看到所有路径.以上(如果返回非null)返回每个已安装的外部存储的根路径(file).所以如果aDirArray.length> 1,然后以下内容为您提供您在可移动存储上寻找的DCIM路径.

文件aExtDcimDir =新文件(aDirArray [1],Environment.DIRECTORY_DCIM);

也许在你的情况下,你想要检查aDirArray [0],aDirArray [1],…(数组中返回的所有文件)是否存在Environment.DIRECTORY_DCIM.

请注意,Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)返回与新文件(aDirArray [0],Environment.DIRECTORY_DCIM)相同的内容.

总结

以上是内存溢出为你收集整理的android – 在主存储和辅助存储上获取DCIM文件夹的路径全部内容,希望文章能够帮你解决android – 在主存储和辅助存储上获取DCIM文件夹的路径所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1127803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存