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

废话不多说,直接看代码

    // 获得缓存文件路径,磁盘空间不足或清除缓存时数据会被删掉,一般存放一些临时文件
    // /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

 

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


 

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值