Android获取所有sdcard路径
2015-12-08 本文已影响112人
lewiswon
//StorageUtils.java
public static ArrayList<Storage> getAllMountedStorage() {
Process process = null;
ArrayList<Storage> list = null;
try {
Runtime rt = Runtime.getRuntime();
process = rt.exec("mount");
InputStream is = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = reader.readLine()) != null) {
String[] strs = line.split(" ");
String path = strs[1];
File file = new File(path);
if (file.isDirectory() && file.canRead() && file.canWrite()) {
if (path.endsWith("legacy")) {
continue;
}
Storage storage = new Storage();
storage.setFreeLenth(file.getUsableSpace());
storage.setTotalLength(file.getTotalSpace());
storage.setPath(path);
if (list == null) {
list = new ArrayList<Storage>();
list.add(storage);
} else {
list.add(storage);
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (process != null) {
try {
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return list;
}