3

私はアンドロイドの初心者です。内部SDカードのパスを見つける方法、次にそれらの使用済みスペースと空きスペースを見つける方法。コメントを返信してください。回答は貴重です。

4

5 に答える 5

4

Environment.getExternalStorageDirectory().getAbsolutePath()あなたにSDカードパスを与えます。

外部SDカードの利用可能な「空き」スペースを取得するには、次のスニペットを使用します。

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
double sdAvailSize = (double)stat.getAvailableBlocks()
                   * (double)stat.getBlockSize();
//One binary gigabyte equals 1,073,741,824 bytes.
double gigaAvailable = sdAvailSize / 1073741824;
于 2012-06-17T09:06:46.170 に答える
2

内部SDカードパスと外部SDカードパスを見つける方法

あなたはそうしない。

現時点では、Android SDKの観点から、「内部SDカードパス」または「外部SDカードパス」はありません。外部ストレージへのパスがあります。これは、Environment(たとえばgetExternalStorageDirectory())のさまざまなメソッドによって返されます。これは、デバイスの製造元がこの目的のために指定したストレージになります。

Androidデバイス上の他の潜在的な「SDカードパス」を決定する信頼できる手段はありません。

于 2012-06-17T10:38:01.343 に答える
1

SDカードへのアクセスに関するAndroidドキュメントを確認してください:http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

于 2012-06-17T09:06:14.783 に答える
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();
                }
            }
        }
于 2014-03-12T12:26:56.303 に答える
0

System.getenv(ENV_EXTERNAL_STORAGE) から常にありますandroid.os

ソースコードからの他の例:

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

于 2018-11-15T19:40:38.733 に答える