12 外部存储和内部存储

获取在data下对应包名的文件夹路径

内部包内文件(data/data/包名/)

  1. 获取内部的 data/data/包名/files
    • FileOutputStream openFileOutput = Context.openFileOutput(文件名, 模式);
      • 模式选择如下
        • Context.MODE_PRIVATE:私有 自由拥有者有权限读写
        • Context.MODE_APPEND : 追加写入
        • Context.MODE_WORLD_READABLE:全局可读 (弃用)
        • Context.MODE_WORLD_WRITEABLE:全局可写 (弃用)
  2. 获取内部data/data/包名/cache

    • File filesDir = Context.getFilesDir();
  3. 获取内部data/data/包名/shared_prefs

    • SharedPreferences sp = Context.getSharedPreferences(文件名 模式);

      • 模式在上方写有:略

外部包内文件(sdcard/android/data/包名)

  1. 获取外部的 sdcard/android/data/包名/files
File file = new File(contex.getExternalFilesDir(文件夹名, 文件名);
* 上诉操作会在sdcard/android/data/包名/files/文件夹名/文件创建文件
* 文件夹名可以写成如下几种格式:
        1. DIRECTORY_ALARMS //警报的铃声
        2. DIRECTORY_DCIM //相机拍摄的图片和视频保存的位置
        3. DIRECTORY_DOWNLOADS //下载文件保存的位置
        4. DIRECTORY_MOVIES //电影保存的位置, 比如 通过google play下载的电影
        5. DIRECTORY_MUSIC //音乐保存的位置
        6. DIRECTORY_NOTIFICATIONS //通知音保存的位置
        7. DIRECTORY_PICTURES //下载的图片保存的位置
        8. DIRECTORY_PODCASTS //用于保存podcast(博客)的音频文件
        9. DIRECTORY_RINGTONES //保存铃声的位置
  1. 获取外部的 sdcard/android/data/包名/cache
    File file = new File(contex.getExternalCacheDir(), 文件名);

总结:获取包名下问价路径全部都是通过Context(上下文获取)

static String PATH = Environment.getExternalStoragePublicDirectory(类型)

* 文件夹名可以写成如下几种格式:
        1. DIRECTORY_ALARMS //警报的铃声
        2. DIRECTORY_DCIM //相机拍摄的图片和视频保存的位置
        3. DIRECTORY_DOWNLOADS //下载文件保存的位置
        4. DIRECTORY_MOVIES //电影保存的位置, 比如 通过google play下载的电影
        5. DIRECTORY_MUSIC //音乐保存的位置
        6. DIRECTORY_NOTIFICATIONS //通知音保存的位置
        7. DIRECTORY_PICTURES //下载的图片保存的位置
        8. DIRECTORY_PODCASTS //用于保存podcast(博客)的音频文件
        9. DIRECTORY_RINGTONES //保存铃声的位置
  • Environment.getExternalStorageDirectory()直接获取外部内存根目录
原文地址:https://www.cnblogs.com/muyuge/p/6152265.html