如何查找内部SD卡路径?

3

我是Android的初学者。如何找到内部SD卡的路径,然后找到它们的已用空间和可用空间。请回复您的评论和答案对我很有价值。


你可能想要查看http://developer.android.com/guide/topics/data/data-storage.html,它可能会为你提供一些有用的信息。 - Austin
4个回答

2
如何找到内部SD卡路径和外部SD卡路径
你不需要这么做。
目前从Android SDK的角度来看,没有“内部SD卡路径”或“外部SD卡路径”。有外部存储的路径,它由Environment上的各种方法返回(例如getExternalStorageDirectory())。这将是设备制造商指定用于此目的的任何存储。
在Android设备上确定任何其他潜在的“SD卡路径”没有可靠的方法。

谢谢提供的信息,对我很有用。 - Jahir


0

总是可以从android.os中使用System.getenv(ENV_EXTERNAL_STORAGE)

源代码中的其他示例:

public static File getExternalStorageDirectory() {
    throwIfUserRequired();
    return sCurrentUser.getExternalDirs()[0];
}

/** {@hide} */
public static File getLegacyExternalStorageDirectory() {
    return new File(System.getenv(ENV_EXTERNAL_STORAGE));
}

/** {@hide} */
public static File getLegacyExternalStorageObbDirectory() {
    return buildPath(getLegacyExternalStorageDirectory(), DIR_ANDROID, DIR_OBB);
}

Environment.java

private static final String ENV_EXTERNAL_STORAGE = "EXTERNAL_STORAGE";
private static final String ENV_ANDROID_ROOT = "ANDROID_ROOT";
private static final String ENV_ANDROID_DATA = "ANDROID_DATA";
private static final String ENV_ANDROID_EXPAND = "ANDROID_EXPAND";
private static final String ENV_ANDROID_STORAGE = "ANDROID_STORAGE";
private static final String ENV_DOWNLOAD_CACHE = "DOWNLOAD_CACHE";
private static final String ENV_OEM_ROOT = "OEM_ROOT";
private static final String ENV_ODM_ROOT = "ODM_ROOT";
private static final String ENV_VENDOR_ROOT = "VENDOR_ROOT";

/** {@hide} */
public static final String DIR_ANDROID = "Android";
private static final String DIR_DATA = "data";
private static final String DIR_MEDIA = "media";
private static final String DIR_OBB = "obb";
private static final String DIR_FILES = "files";
private static final String DIR_CACHE = "cache";

/** {@hide} */
@Deprecated
public static final String DIRECTORY_ANDROID = DIR_ANDROID;

private static final File DIR_ANDROID_ROOT = getDirectory(ENV_ANDROID_ROOT, "/system");
private static final File DIR_ANDROID_DATA = getDirectory(ENV_ANDROID_DATA, "/data");
private static final File DIR_ANDROID_EXPAND = getDirectory(ENV_ANDROID_EXPAND, "/mnt/expand");
private static final File DIR_ANDROID_STORAGE = getDirectory(ENV_ANDROID_STORAGE, "/storage");
private static final File DIR_DOWNLOAD_CACHE = getDirectory(ENV_DOWNLOAD_CACHE, "/cache");
private static final File DIR_OEM_ROOT = getDirectory(ENV_OEM_ROOT, "/oem");
private static final File DIR_ODM_ROOT = getDirectory(ENV_ODM_ROOT, "/odm");
private static final File DIR_VENDOR_ROOT = getDirectory(ENV_VENDOR_ROOT, "/vendor");

源代码

sources\android-25\android\os\Environment.java


0
使用以下代码,它将返回具有内部和外部存储的设备的内部目录路径和SD卡路径列表。
File dir = new File(Environment.getExternalStorageDirectory().getParent());
            File[] f = dir.listFiles();
            for(File file:f)
        {
            if(file.getName().equals("sdacard0"))//check name of sdcard from  file manager.
            {
                if(file.isDirectory())
                {
                    f = file.listFiles();
                }
            }
        }

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