不同型号
Android
手机SD
卡目录可能不同,本文测试手机meizu note3
。
卸载 App 不删除的文件
Environment.getExternalStorageDirectory()
File sdcard = Environment.getExternalStorageDirectory();
File dic_picture = new File(sdcard, "Pictures");
Log.i(TAG, dic_picture);
//返回结果
/storage/emulated/0/Pictures
-
Environment.getExternalStoragePublicDirectory(String type);
type
:系统提供的特定目录名,以DIRECTORY
开头。例:Environment.DIRECTORY_DCIM
File dic_picture = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
Log.i(TAG, dic_picture);
//返回结果
/storage/emulated/0/Pictures
卸载 App 删除的文件
该类文件通常只有对应App
才能使用。
-
internal storage
手机自带存储区域,通常很小,shared preference
、数据库存在该目录下
方法:Context.getFilesDir()
File fileDir = this.getFilesDir();
Log.i(TAG, fileDir);
//返回结果
/data/data/com.example.test/files
-
external storage
SD卡,通常很大
方法:Context.getExternalFilesDir(String type)
// ------------(1)----------
File fileDir = this.getExternalFilesDir(null);
Log.i(TAG, fileDir);
//返回结果
/storage/emulated/0/Android/data/com.example.test/files
// ------------(2)----------
File fileDir = this.getExternalFilesDir(`Movies`);
Log.i(TAG, fileDir);
//返回结果
/storage/emulated/0/Android/data/com.example.test/files/Movies
- 应用程序缓存目录
//获取应用程序自己的缓存目录
context.getCacheDir()
//获取应用程序在外部存储的存储目录
context.getExternalCacheDir()
判断是否安装SD卡##
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//已安装SD卡
}
相关权限##
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
网友评论