我正在编写一个应用程序,它应该上传由相机拍摄的照片,这些照片存储在内存和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文件夹的路径所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)