安卓-APP应用文件路径

人生难得几回搏,此时不搏待何时。这篇文章主要讲述安卓-APP应用文件路径相关的知识,希望能为你提供帮助。
应用文件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
        */
【安卓-APP应用文件路径】      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;
              }
 
      }
}

    推荐阅读