android获取存储设备根目录,浅谈android获取存储目录(路径)的几种方式和注意事项...
一般情况下,在进行文件或目录创建时(包括但不限于用于存儲图片等其他類型 files),都需要先确定手機內存储量路徑。本节将介绍几种获取手機內存储量路徑的方式(可作為工具類方法调用)。
第一种: 获取 /storage/emulated/0
public static boolean sdCardIsAvailable() {
//首先判断外部存储是否可用
当环境变量处于MEDIA_MOUNTED状态时,请执行以下操作:
File sd = new File(Environment.getExternalStorageDirectory().getPath());
Log.e("qq", "sd = " + sd);//sd = /storage/emulated/0
return sd.canWrite();
} else {
return false;
}
第二种: 获取 /storage/emulated/0(类似上面)
public String getSDPath() {
File sdDir = null;
//判断sd卡是否存在
boolean sdCardExist = Environment.getExternalStorageState()
.equals(android.os.Environment.MEDIA_MOUNTED);
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();//获取根目录
Log.e("qq", "外部存储可用..." + sdDir.toString());
}
return sdDir.toString();
}
//使用
private void saveInRoot() {
if (getSDPath()!=null) {
//String fileName = getSDPath() + "/";
//File file = new File(fileName,"123111");//参数
//if (!file.mkdir()) {
Toast.makeText(ExternalStoreActivity.this, "目录已创建", Toast.LENGTH_SHORT).show();
//} else {
调用此外部活动的方法向用户提示,请创建新目录...
//}
}
}
两种途径获取的路径, 实际上等同于系统的根目录。例如, 如果我的手机型号是华为荣耀6, 则其存储位置位于本地->内部存储路径下
第三种: 获取手机指定目录
注意:我担心 必须确认 该手机是否拥有该目录 才能访问到 因为不同手机可能有不同的配置
所以使用前最好查看手机是否具有该路径
public File getAlbumStorageDir(String fileName) {
// Get the directory for the user's public pictures directory.
生成一个名为fileName的文件夹并将其放置于Environment.DIRECTORY_DOWNLOADS目录下之后,请重新打开该目录以进行查看
File file =
创建一个新File实例指向当前用户环境的根目录,并调用该目录的PublicDirectory()方法。
DIRECTORY_DOWNLOADS), fileName);//参数2是文件名称
//mkdirs()可以创建多级目录
//mkdir()只能创建一级目录
if (!file.mkdir()) {
Log.e(LOG_TAG, "Directory not created");
系统向ExternalStoreActivity发送了一个提示信息"目录已存在..."并立即弹出
} else {
$ toast = Toast.makeText(ExternalStoreActivity.this, "生成新目录请求", Toast.LENGTH_SHORT); toast.show();
}
return file;
}
最后需要注意的是,在获取到最终路径为String类型的情况下
实现:
应设置为aaaa/xx.png;如果未添加上/符号,则生成的图片文件名为aaaaxx.png。
当然,如果你不想加"/", 也很简单, 保证你的路径是File类型的即可
本文主要探讨Android系统中获取存储目录(路径)的不同方法及其注意事项。就这一主题进行了分析,并相当于把所有内容都分享出来了。希望这些信息对大家有所帮助,并且欢迎持续关注脚本之家。
