1、Environment.getExternalStorageState(); //获取SD卡的存储状态
2、File sdCard = Environment.getExternalStorageDirectory(); //获取SD卡根目录,然后自定义文件/文件名进行文件存储
3、Google已经提供了最佳的外部存储方案,那就是统一路径为:
/Android/data/< package name >/files/… (该路径通常挂载在/mnt/sdcard/下)
外部存储路径调用方法是:
context.getExternalFilesDir(dir).getAbsolutePath() //参数dir为自自定义文件夹,这个方法获得的文件存储路径适用于6.0以后系统
以上,是关于外部存储的介绍,那么如果有些手机没有SD卡或者系统自身没有分配外部存储空间,时,我们应该怎么缓存数据呢?
那就需要用到内部存储了,内部存储的路径是:
/data/data/< package name >/files/… (该路径挂载在在手机自身存储目录)
内部存储路径调用方法是:
context().getCacheDir().getAbsolutePath()
因此,正常开发中获取存储路径的方法是:
String state = Environment.getExternalStorageState();
File rootDir = state.equals(Environment.MEDIA_MOUNTED) ? Environment.getExternalStorageDirectory() : context.getCacheDir();
File path =null;
if (!TextUtils.isEmpty(dirName)) {
// 自定义保存目录
path =new File(rootDir.getAbsolutePath() + File.separator + dirName);
}else {
path =new File(rootDir.getAbsolutePath());
}
if (!path.exists())
// 若不存在,创建目录
path.mkdirs();
1564997402(1).jpg
网友评论