2014-09-12 2 views
-1

Я нашел очень хороший способ получить пути ко всем SD-картам, которые имеет это устройство, а не только Environment.getExternalStorageDirectory(), но также и внешние. Этот метод secrond на How can I get external SD card path for Android 4.0+?Получите доступное пространство на всех SD-картах

Итак, мой вопрос, как я могу найти свободное доступное пространство на сд карту зная, что это путь, например, «хранение/extSdCard» или любой другой

другими словами мне нужно метод:

public int getExternalAvailableSpaceInBytes(String sdRootPath) { 
//here's this method using this sdRootPath 
} 

ответ

-1
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); 
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){ 
@SuppressWarnings("deprecation") 
long sdAvailSize = (long)stat.getAvailableBlocksLong() * (long)stat.getBlockSizeLong(); 
} 
else{ 
@SuppressWarnings("deprecation") 
double sdAvailSize = (double)stat.getAvailableBlocks() * (double)stat.getBlockSize(); 
} 

double gigaAvailable = sdAvailSize/1073741824; //1073741824 =1GB 
+0

Я указал, что Environment.getExternalStorageDirectory() GetPath() возвращает только внутреннюю карту SD, если 2 существует.. Мне нужно знать доступное пространство по пути Sd-карты. – user2976267

+0

передайте путь к другим SD-картам, которые вместо «Environment.getExternalStorageDirectory»() будут обработаны. GetPath() ' –

+0

[как получить путь к внешним SD-картам] (http://stackoverflow.com/q/11281010/3326331) –

Смежные вопросы