解析Android中应用程序文件存储用得到的一些文件路径

原创 2016年06月07日 21:23:02

废话不多说,直接看代码

        // 获得缓存文件路径,磁盘空间不足或清除缓存时数据会被删掉,一般存放一些临时文件
        // /data/data/<application package>/cache目录
        File cacheDir = getCacheDir();
        Log.d("TAG", "getCacheDir() : " + cacheDir.getAbsolutePath());

        // 获得文件存放路径,一般存放一些需要长期保留的文件
        // /data/data/<application package>/files目录
        File fileDir = getFilesDir();
        Log.d("TAG", "getFilesDir() : " + fileDir.getAbsolutePath());

        // 这是一个可以存放你自己应用程序自定义的文件,你可以通过该方法返回的File实例来创建或者访问这个目录
        // /data/data/<application package>/
        File dir = getDir("fileName", MODE_PRIVATE);
        Log.d("TAG", "getDir() : " + dir.getAbsolutePath());

        // 获取应用程序外部存储的缓存目录路径
        // SDCard/Android/data/<application package>/cache目录
        File externalCacheDir = getExternalCacheDir();
        Log.d("TAG", "getExternalCacheDir() : " + externalCacheDir.getAbsolutePath());

        // 获取应用程序外部存储的某一类型的文件目录,
        // SDCard/Android/data/<application package>/files目录
        // 这里的类型有
        // Environment.DIRECTORY_MUSIC音乐
        // Environment.DIRECTORY_PODCASTS 音频
        // Environment.DIRECTORY_RINGTONES 铃声
        // Environment.DIRECTORY_ALARMS 闹铃
        // Environment.DIRECTORY_NOTIFICATIONS 通知铃声
        // Environment.DIRECTORY_PICTURES 图片
        // Environment.DIRECTORY_MOVIES 视频
        File externalFilesDir = getExternalFilesDir(Environment.DIRECTORY_MUSIC);
        Log.d("TAG", "getExternalFilesDir() : " + externalFilesDir.getAbsolutePath());

        // 获取应用的外部存储的缓存目录
        File[] externalCacheDirs = getExternalCacheDirs();
        for (int i = 0; i < externalCacheDirs.length; i++) {
            Log.d("TAG", "getExternalCacheDirs() " + i + " : " + externalCacheDirs[i].getAbsolutePath());
        }

        // 获取应用的外部存储的某一类型的文件目录
        File[] externalFilesDirs = getExternalFilesDirs(Environment.DIRECTORY_MUSIC);
        for (int i = 0; i < externalFilesDirs.length; i++) {
            Log.d("TAG", "getExternalFilesDirs() " + i + " : " + externalFilesDirs[i].getAbsolutePath());
        }

        // 获取应用的外部媒体文件目录
        File[] externalMediaDirs = getExternalMediaDirs();
        for (int i = 0; i < externalMediaDirs.length; i++) {
            Log.d("TAG", "getExternalMediaDirs() " + i + " : " + externalMediaDirs[i].getAbsolutePath());
        }

        // 获得应用程序指定数据库的绝对路径
        // /data/data/<application package>/database/database.db目录
        File databasePath = getDatabasePath("database.db");
        Log.d("TAG", "getDatabasePath() : " + databasePath.getAbsolutePath());


        // -------------分界线-----------------------
        // 以下是一些共有的目录,与APP包名无关,不会随APP卸载被删除
        // /data目录
        File dataDirectory = Environment.getDataDirectory();
        Log.d("TAG", "Environment.getDataDirectory() : " + dataDirectory.getAbsolutePath());
        // /cache目录
        File downloadCacheDirectory = Environment.getDownloadCacheDirectory();
        Log.d("TAG", "Environment.getDownloadCacheDirectory() : " + downloadCacheDirectory.getAbsolutePath());
        // /sdcard目录
        File externalStorageDirectory = Environment.getExternalStorageDirectory();
        Log.d("TAG", "Environment.getExternalStorageDirectory() : " + externalStorageDirectory.getAbsolutePath());
        // /sdcard/Pictures目录
        File externalStoragePublicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        Log.d("TAG", "Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) : " + externalStoragePublicDirectory.getAbsolutePath());
        // /system目录
        File rootDirectory = Environment.getRootDirectory();
        Log.d("TAG", "Environment.getRootDirectory()() : " + rootDirectory.getAbsolutePath());


然后看Log

文本版:

06-07 13:25:38.919  2821  2821 D TAG     : getCacheDir() : /data/user/0/com.example.msi_cn.myapplication/cache
06-07 13:25:38.919  2821  2821 D TAG     : getFilesDir() : /data/user/0/com.example.msi_cn.myapplication/files
06-07 13:25:38.919  2821  2821 D TAG     : getDir() : /data/user/0/com.example.msi_cn.myapplication/app_fileName
06-07 13:25:38.922  2821  2821 D TAG     : getExternalCacheDir() : /storage/emulated/0/Android/data/com.example.msi_cn.myapplication/cache
06-07 13:25:38.925  2821  2821 D TAG     : getExternalFilesDir() : /storage/emulated/0/Android/data/com.example.msi_cn.myapplication/files/Music
06-07 13:25:38.925  2821  2821 D TAG     : getExternalCacheDirs() 0 : /storage/emulated/0/Android/data/com.example.msi_cn.myapplication/cache
06-07 13:25:38.925  2821  2821 D TAG     : getExternalCacheDirs() 1 : /storage/150C-1619/Android/data/com.example.msi_cn.myapplication/cache
06-07 13:25:38.925  2821  2821 D TAG     : getExternalFilesDirs() 0 : /storage/emulated/0/Android/data/com.example.msi_cn.myapplication/files/Music
06-07 13:25:38.925  2821  2821 D TAG     : getExternalFilesDirs() 1 : /storage/150C-1619/Android/data/com.example.msi_cn.myapplication/files/Music
06-07 13:25:38.927  2821  2821 D TAG     : getExternalMediaDirs() 0 : /storage/emulated/0/Android/media/com.example.msi_cn.myapplication
06-07 13:25:38.927  2821  2821 D TAG     : getExternalMediaDirs() 1 : /storage/150C-1619/Android/media/com.example.msi_cn.myapplication
06-07 13:25:38.927  2821  2821 D TAG     : getDatabasePath() : /data/user/0/com.example.msi_cn.myapplication/databases/database.db
06-07 13:25:38.927  2821  2821 D TAG     : Environment.getDataDirectory() : /data
06-07 13:25:38.927  2821  2821 D TAG     : Environment.getDownloadCacheDirectory() : /cache
06-07 13:25:38.932  2821  2821 D TAG     : Environment.getExternalStorageDirectory() : /storage/emulated/0
06-07 13:25:38.937  2821  2821 D TAG     : Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) : /storage/emulated/0/Pictures
06-07 13:25:38.937  2821  2821 D TAG     : Environment.getRootDirectory()() : /system

截图版:


由于我是使用的模拟器,所以可能有些出入,你也可以直接把代码复制过去在手机上跑一下看下log


好了,该说的注释上也说的差不多了,常用的基本就这些。



版权声明:本文为博主原创文章,未经博主允许不得转载。

Android常见文件路径介绍

关于Android中几个常用文件路径的介绍我记忆力不是太好,总是记不清,那几个常用的文件路径的具体名字,所以就在此记录一下,也方便不太清楚的同学查阅。外部存储,内部存储的区别Internal stor...
  • baidu_17508977
  • baidu_17508977
  • 2016年03月29日 17:45
  • 8159

Android 获取系统各个目录

在Android开发过程中,我们经常会对文件系统进行操作——存放、释放我们应用的数据。Android系统中提供了各种功能的文件目录,每个目录都有相应的特点和功能。 这篇文章主要介绍和记录一下实际开发过...
  • mq2856992713
  • mq2856992713
  • 2017年03月31日 22:16
  • 1800

android中的文件操作详解以及内部存储和外部存储

摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理。根据我的经验,初学者...
  • androidwifi
  • androidwifi
  • 2014年01月01日 02:28
  • 103182

android 获取路径目录方法以及判断目录是否存在,创建目录

Environment 常用方法:  * 方法:getDataDirectory() 解释:返回 File ,获取 Android 数据目录。 * 方法:getDownloadCacheDi...
  • chengyingzhilian
  • chengyingzhilian
  • 2012年08月06日 09:36
  • 96307

Android app的文件目录

摘要: Android app的文件缓存目录 Android app的文件缓存目录可以是app内置私有的目录,当然也可以选择外置sdcard目录 内置私有目录 /data/dat...
  • mr_orange_klj
  • mr_orange_klj
  • 2016年10月09日 10:43
  • 446

Android 保存文件路径

Android保存文件到本地路径问题常见路径例如: application 包名: com.my.company 项目名: chat ...
  • yshxjoy
  • yshxjoy
  • 2017年05月15日 10:11
  • 1838

Android APP 数据存放目录

Android的每个应用程序,都有自己的可控的目录。 在Setting/Application info里面,可以看到每个应用程序,都有Clear data和Clear cache选项。 ...
  • a1047189887
  • a1047189887
  • 2016年01月22日 11:15
  • 318

android各种文件夹路径

context.getCacheDir():  /data/data/com.example.qymh/cache context.getFilesDir():  /data/data/com.exa...
  • u011228356
  • u011228356
  • 2015年03月11日 16:00
  • 4155

Android系统文件目录路径说明

Android 存储路径
  • u013728021
  • u013728021
  • 2017年11月08日 11:28
  • 319

Android获取文件目录路径

Android 2,.1中获取内存卡上的data/data/org.lesohome.activity/files/目录,保存在此目录的文件,当程序卸载时,系统会自动删除。 从Android 2.2...
  • luckily01
  • luckily01
  • 2012年07月28日 16:45
  • 59102
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解析Android中应用程序文件存储用得到的一些文件路径
举报原因:
原因补充:

(最多只允许输入30个字)