android相关本地存储目录

android本地存储目录

  • 内部存储
  • 外部存储
    • 应用私有目录
    • 外部目录

获得内部存储目录

    /**
     * 获得私有目录文件,卸载之后会自动删除,7.0之后私有目录访问权限必须添加fileprovider访问
     */
    private void init() {

        //绝对路径,=/data/user/0/packname/files
        File filesDir = mContext.getFilesDir();
        filesDir.getAbsolutePath();

        //缓存路径,sp等,=/data/user/0/packname/cache
        File cacheDir = mContext.getCacheDir();
        cacheDir.getAbsolutePath();

        boolean b = mContext.deleteFile("");

        String[] strings = mContext.fileList();

        //获得私有目录内的自建目录,=/data/user/0/packname/app_myFile
        String myFile = mContext.getDir("myFile", MODE_PRIVATE).getAbsolutePath();

        //获得data目录=/data
        File dataDirectory = Environment.getDataDirectory();

    }

获得外部存储目录

    /**
     * 外部存储路径,sd等
     * <p>
     * /storage/emulated/0/Android/data/app package name
     */
    private void init2() {

        //在4.4以前系统中可能会获得null,因为4.4之前如果没有插sd卡,就代表没有外部存储,
        //获得某个应用在外部存储中的files路径,=/storage/emulated/0/Android/data/packname/files
        File externalFilesDir = mContext.getExternalFilesDir("");
        String absolutePath = externalFilesDir.getAbsolutePath();

        //获得某个应用在外部存储中的cache路径,=/storage/emulated/0/Android/data/packname/cache
        String absolutePath1 = mContext.getExternalCacheDir().getAbsolutePath();


        //通过Environment获得的时候需要申请权限,获得外部存储的根路径=/storage/emulated/0
        String absolutePath3 = Environment.getExternalStorageDirectory().getAbsolutePath();

        //,获得外部存储的根路径=/storage/emulated/0
        String absolutePath2 = Environment.getExternalStoragePublicDirectory("").getAbsolutePath();

    }

获得外部存储目录

 /**
     * 获得外部存储路径,包括机身外部存储以及sd卡存储
     */
    public void getExternalStoragePath() {

        File[] files;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            files = mContext.getExternalFilesDirs(Environment.MEDIA_MOUNTED);
            for (File file : files) {
                Log.e("main", file.getPath());
            }
        }
    }

其他目录

     Environment.getDownloadCacheDirectory();//,=/cache
     Environment.getRootDirectory();//,=system
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,335评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,472评论 2 59
  • 之前闲着无聊,研究了下 Android 存储方面的知识,顺便翻译了下官方文档(虽然有已经被翻译过...)。这里就算...
    koguma阅读 4,654评论 0 3
  • 你最可爱,我说时来不及思索,但思索之后,还是这样说。——普希金 我遇见你,我记得你,这座城市天生就适合恋爱,你天生...
    沉睡的西西弗阅读 1,839评论 0 2
  • 1、 遇见他时匆忙且惊艳。 彼时她在火锅店做兼职,正值暑期,也不知道怎么了,这个城市好像约好了一样很多地方都不招聘...
    小李崽_阅读 2,828评论 7 4