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

        }

 

    }

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM