应用文件API
文件目录API层
应用文件API |
内部存贮API |
// 内部私有缓存路径,/data/user/0/com.exam.pkg/cache (6.0之后路径) context.getCacheDir().getPath() // 内部私有存贮路径,/data/user/0/com.exam.pkg/files (6.0之后路径) context.getFilesDir().getPath() |
外部存贮API |
// 外部私有目录路径 // /storage/emulated/0/Android/data/com.exam.pkg/files/Pictures context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getPath() // 外部私有缓存目录路径 // /storage/emulated/0/Android/data/com.exam.pkg/cache context.getExternalCacheDir().getPath() // 外部私有media目录 Context#getExternalMediaDirs() |
Environment |
// 外部存贮根目录 // /storage/emulated/0 Environment.getExternalStorageDirectory().getPath() // 外部存贮公共目录 Environment.getExternalStoragePublicDirectory(type).getPath() |
|
|
系统版本与文件路径
系统版本 |
外部存贮路径 |
4.0 |
/mnt/sdcard |
4.1 |
/storage/sdcard0 |
4.2 |
/storage/sdcard0 |
4.4 |
/storage/emulated/0 |
6.0 |
/storage/emulated/0 |
|
|
系统版本 |
内部私有存贮路径 |
4.0 |
/data/data/packname/ |
4.1 |
/data/data/packname/ |
4.2 |
/data/data/packname/ |
4.4 |
/data/data/packname/ |
6.0 |
/data/user/0/packname/ |
|
|
示例代码
测试代码Android6.0
/** * 安卓文件路径整理 * Ref: * ---https://blog.csdn.net/u010937230/article/details/73303034/ * ---https://blog.csdn.net/yshxjoy/article/details/72122358 * ---https://blog.csdn.net/xiao_sier/article/details/78667149 */ public class PathUtils { /** * APP私有内部缓存目录 * ---无ROOT权限的其他普通APP不可访问,安全 * ---由Context提供,context提供包括package基本信息、APP应用路径、APP资源访问、数据存贮管理(SP、DB、文件) * ---、四大组件基本操作等服务 * ---主要用于存放缓存文件,当系统的内存存储空间紧张时,该目录下的文件会被删除掉 * /data/user/0/com.simple.common/cache * * @param context * @return */ public static String getCacheDir(Context context) { return context.getCacheDir().getPath(); }
/** * APP私有内部存贮路径 * ---无ROOT权限其他普通APP不可访问,安全 * ---卸载应用程序时会被删除掉 * /data/user/0/com.simple.common/files * @param context * @return */ public static String getFilesDir(Context context) { return context.getFilesDir().getPath(); }
/** * APP私有外部存贮路径 * ---在外部存贮中,其他应用可访问 * {@link Context#getExternalFilesDirs(String type)} * {@link Context#getExternalCacheDirs()} * {@link Context#getExternalMediaDirs()} * /storage/emulated/0/Android/data/com.simple.common/files/Pictures * @param context * @return */ public static String getExternalFilesDir(Context context) { return context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getPath(); }
/** * APP私有外部缓存目录 * ---在外部存贮中,其他应用可访问 * /storage/emulated/0/Android/data/com.simple.common/cache * @param context * @return */ public static String getExternalCacheDir(Context context) { return context.getExternalCacheDir().getPath(); }
/** * 外部存贮目录 * ---由Environment提供,主要有: * ------getExternalStorageDirectory * ------getExternalStoragePublicDirectory * /storage/emulated/0 * @return */ public static String getExternalStorageDirectory() { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { return Environment.getExternalStorageDirectory().getPath(); } else { return null; }
}
/** * 外部公共存贮目录 * /storage/emulated/0/DCIM * @return */ public static String getExternalStoragePublicDirectory() { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath(); } else { return null; }
} } |