image.png

内部存储

  1. final Directory tmpextDir = await getApplicationDocumentsDirectory();
  2. // 测试输出:tmpextDir--path:/data/user/0/com.niu.h2/app_flutter

内部存储位于系统中很特殊的一个位置,对于设备中每一个安装的 App,系统都会在data/data/packagename/xxx 自动创建与之对应的文件夹。如果你想将文件存储于内部存储中,那么文件默认只能被你的应用访问到,且一个应用所创建的所有文件都在和应用包名相同的目录下。也就是说应用创建于内部存储的文件,与这个应用是关联起来的。当一个应用卸载之后,内部存储中的这些文件也被删除。对于这个内部目录,用户是无法访问的,除非获取root权限
/data/user/0/xxx包名/,(>=6.0)
/data/data/xxx包名/,(<6.0)

外部存储

  1. final Directory extDir = await getExternalStorageDirectory();
  2. // 测试输出:extDir--path:/storage/emulated/0/Android/data/com.niu.h2/files

在Android4.4以后的话,就目前而言,现在的手机自带的存储就很大,现在Android10.0的话,有的手机能达到256G的存储,针对于这种情况,手机机身自带的存储也是外部存储,如果再插入SD卡的话也叫外部存储,因此对于外部存储分为两部分:SD卡和扩展卡内存
机身自带的外部存储目录,路径为:/storage/emulated/0/Android/data/packagename/files
存储卡的目录结构,路径为:/storage/extSdCard/Android/data/packagename/files

参考

  1. 一篇文章搞懂android存储目录结构