Android 文件目录繁多,每个目录都有每个目录存在的意义,将文件存储在正确的目录,有利于文件的分类管理。
Android磁盘存储可以分为两大类,内部存储和外部存储。

内部存储

内部存储不是内存,是位于位于系统磁盘中一个独特的位置。/data/ 文件夹就是内部存储,内部存储中一般存储一些应用的数据,如apk,shareprefence、database数据,webview缓存和图片缓存等。内部存储中还有一个文件夹每个应用都只有一个,里面中数据在应用卸载之后,就会被删除。结构如:/data/data/你的应用的包名/。其次还有一个 /data/app/ 的文件夹,这里面存储着我们手机上安装的apk文件。

特点
  • 内部存储的文件和目录只能被我们的app自己所访问,别的app不能访问。
  • 内部存储中的私有目录,当用户卸载app之后,改文件目录中关于该应用的信息就会被删除。
  • 内部存储是可用的。
  • 内部存储大小有限,不适合存储大量数据。
  • 只有root的手机,才能从手机文件管理器看见,否则都是隐藏着的。
getCacheDir().getAbsolutePath();///data/data/包名/cache
常见的内部存储中有这些目录
  • /data/app/
  • /data/data/包名/shared_prefs
  • /data/data/包名/cache
  • /data/data/包名/databases
  • /data/data/包名/files

外部存储

外部存储并不是指拓展的SD卡,不管有无外接设备,每个Android手机都有外部存储。一般的mnt或者storage目录。外部存储中分两类目录,私有目录和公有目录,私有目录的数据会随着应用的卸载而删除,公有目录则不会。

特点
  • 公有目录任何程序都可以访问,私有目录自身可以访问。
  • 并不一定是可用的,因为SD卡会被挂载。
  • 外部存储中的私有目录中的数据会随着应用的卸载而删除,公有目录则不会。
公有目录

公有目录是任何程序都可以

  • DIRECTORY_MUSIC

音乐/storage/emulated/0/Music

  • DIRECTORY_PODCASTS

播客/storage/emulated/0/Podcasts

  • DIRECTORY_RINGTONES

来点铃声

  • DIRECTORY_ALARMS

闹钟/storage/emulated/0/Alarms

  • DIRECTORY_NOTIFICATIONS

通知/storage/emulated/0/Notifications

  • DIRECTORY_PICTURES

图片/storage/emulated/0/Pictures

  • DIRECTORY_MOVIES

电影/storage/emulated/0/Movies

  • DIRECTORY_DOWNLOADS

下载文件存储路径/storage/emulated/0/Download

  • DIRECTORY_DCIM

媒体文件/storage/emulated/0/DCIM

  • DIRECTORY_DOCUMENTS

文档/storage/emulated/0/Documents

我们通过Environment.getExternalStoragePublicDirectory()来获取这些目录

私有目录

外部存储中的私有目录是不会自动创建的,需要开发者自己创建,私有目录应用本身无需申请动态权限,就能直接访问。我们可以在私有目录下新建我们自己的文件夹

  • getExternalFilesDir(“files目录的子目录名称”)

获取应用私有目录files目录中的文件目录(/storage/emulated/0/Android/data/包名/files/子目录)

  • getExternalCacheDir()

获取应用cache目录(/storage/emulated/0/Android/data/包名/cache)

更多相关文章

  1. Android的APK包里的文件类型都是什么?
  2. 教你如何在 Android 使用多线程下载文件
  3. 在 Android 上使用 XML 传输数据(附例子程序)
  4. Android 文件操作详解及简单实例
  5. 数据存储与ContentProvider
  6. Andriod数据推送方案
  7. Android下 读写文件
  8. Android中经常用到的方法--SDcard下文件的操作
  9. Android 将被依赖的库项目打包成aar(非jar)文件

随机推荐

  1. Android 开发系列6 安装Cordova及示例程
  2. android系统学习笔记十二
  3. Android手机开发——向SD卡上的文件追加
  4. install Android development environmen
  5. Android:EventBus向上向下传参
  6. Android打包编译流程
  7. Android之ToolBar项目封装,踩坑过河
  8. Android TextView内容设置超链接、颜色、
  9. 获取定位数据
  10. android网络连接总结