安卓-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

     */

    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;

        }

    }

}

猜你喜欢

转载自www.cnblogs.com/zhen-android/p/10054420.html