前两个应用内部存储通过 Context 来获取, 第三个作为外部存储是通过 Environment 类来获取. 注释为返回值.
/data/data/包名/
context.getFilesDir(); // /data/data/包名/filescontext.getCacheDir(); // /data/data/包名/cache/sdcard/Android/data/包名/
context.getExternalFilesDir(); // /sdcard/Android/data/包名/filescontext.getExternalCacheDir(); // /sdcard/Android/data/包名/cache/sdcard/xxx
// /storage/emulated/0Environment.getExternalStorageDirectory();// /storage/emulated/0/DCIM, 另外还有MOVIE/MUSIC等很多种标准路径Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);注意, 根据源码文档中说明, 获取外部存储时, 有可能会因为各种问题导致获取失败, 建议先使用 getExternalStorageState 来判断外部存储状态, 如果已挂载的话再存储.