安卓外置sd卡中DCIM文件夹路径

5

如果外部sd卡存在,我需要DCIM文件夹路径。

我观察到这个路径根据设备制造商而变化:("/storage/extSdCard", "/storage/SdCard", "mnt/storage/extSdCard", ...)

是否有任何Android api可以给我提供不考虑设备的路径?

3个回答

3

尝试使用

String m_path = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_DCIM).getAbsolutePath();

若要了解更多存储文件结构的细节,请查看我的博客


8
我尝试过 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();,但这只给我返回了内部存储DCIM文件夹的路径。 - Mayur More
它只提供外部存储的路径。你尝试打印路径了吗?@MayurMore - GrIsHu
@GrIsHu,你没理解。作者的意思是MicroSD卡:https://cdn1-shop.mikroe.com/img/product/microsd-16gb/microsd-16gb-thickbox_default-1.jpg - user924

1
使用三星设备时出现了同样的问题。使用Google相册应用程序,我能够确定SD卡存储的实际位置:“/storage/837D-10EB/DCIM”,而不是环境框架给出的字符串“/storage/emulated/0/DCIM”。我不知道这是三星的“问题”还是与Android设置有关。无论如何,如果有另一种查找SD卡相机存储的方法,那就好了。我知道肯定有一种方法,因为Google相册应用程序也可以轻松找到这些照片。

0
答案在 API 指南中:http://developer.android.com/guide/topics/data/data-storage.html#filesExternal 基本步骤如下: 1. 检查存储状态(如果存在) 2. 获取存储路径 3. 进入您想要的目录 4. 创建文件夹,读取文件,写入文件等。具体操作由您决定。
这是从文档中摘录的内容:
public File getAlbumStorageDir(String albumName) {
    // Get the directory for the user's public pictures directory.
    File file = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES), albumName);
    if (!file.mkdirs()) {
        Log.e(LOG_TAG, "Directory not created");
    }
    return file;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接