Android 文件路径详解

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)

你可能感兴趣的:(Android)