获取外部公有存储位置,在这下面建立的文件夹或文件,卸载APP不会被删除

  • Environment.getExternalStorageDirectory())

    输出:/storage/emulated/0

    对应目录:mnt/sdcard/

  • Environment.getExternalStoragePublicDirectory(Environment.DIRECOTRY_DOCUMENTS)

    输出:/storage/emulated/0/Documents

    对应目录:mnt/sdcard/Documents

  • Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)

    输出:/storage/emulated/0/DCIM

    对应目录:mnt/sdcard/DCIM

    说明:一般音视频文件就放在这个目录下面,手机自身拍照录像的文件也放在这个目录下。系统能自动扫描



下面是获取外部APP私有存储位置, 这个路径下文件都会在APP卸载时被清空

  • context.getExternalFilesDir(null)
    输出:/storage/emulated/0/Android/data/com.fe.myapplication/files
    对应目录:mnt/sdcard/Android/data/com.fe.myapplication/files

  • context.getExternalFilesDir(Environment.DIRECTORY_DCIM)
    输出:/storage/emulated/0/Android/data/com.fe.myapplication/files/DCIM
    对应目录:mnt/sdcard/Android/data/com.fe.myapplication/files/DCIM

    最后一个目录是由系统自动生成。files 文件夹下文件在卸载APP时会被清空

    Environment.DIRECTORY_DCIM --> DCIM

    Environment.DIRECTORY_DOCUMENTS --> Documents

    Environment.DIRECTORY_DOWNLOADS --> Download

  • context.getExternalCacheDir()
    输出:/storage/emulated/0/Android/data/com.fe.myapplication/cache
    对应目录:mnt/sdcard/Android/data/com.fe.application/cache

20210623更新

注:阅读公司项目代码,发现同事为在APP外部私有存储位置建立文件夹,直接调用

context.getExternalFilesDir(文件夹名)

前文中我以为函数参数只能是枚举常量 Environment.***, 疑惑这样操作能否生成想要的文件,尝试发现生成成功 mnt/sdcard/Android/data/com.fe.application/files/文件夹名
因此,获取APP外部私有存储位置精确表述为:
context.getExternalFilesDir(null) 可得路径 mnt/sdcard/Android/data/com.fe.application/files, 而其中的String类型参数不为空时,系统将自动在 files 文件夹下建立名称为所提供参数的文件夹.
又因为私有存储位置不需要读写权限,所以可在 files 文件夹下建立任意文件。



下面是获取内部APP私有存储位置,这个路径下文件都会在APP卸载时被清空

APP创建时,会自动在 data/data/com.joyhonest.myapplication/ 下面创建 cache, code_cache, files 三个文件夹.

  • context.getCacheDir()
    输出:/data/user/0/com.joyhonest.myapplication/cache
    对应目录:data/data/com.fe.myapplication/cache

  • context.getFilesDir()
    输出:/data/user/0/com.joyhonest.myapplication/files
    对应目录:data/data/com.fe.myapplication/files

//注意:全文中的外部存储并不一定是可移除的存储,现有手机都有容量非常大的不可移除的外部存储//放置永久性文件时,放置在外部公有存储位置
//放置缓存文件时,优先放置在外部APP私有存储位置,外部不可用时再放到内部APP私有存储位置//转载自:http://blog.csdn.net/a910626/article/details/51470866
public String getDiskCacheDir(Context context) {  String cachePath = null;  if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())  || !Environment.isExternalStorageRemovable()) {  cachePath = context.getExternalCacheDir().getPath();  } else {  cachePath = context.getCacheDir().getPath();  }  return cachePath;
}

修改记录

1 20210623 更新外部APP私有存储位置处文件夹生成

Android 文件夹管理相关推荐

  1. android文件夹管理器源码实现,Android文件夹管理器源码实现

    一.资源管理器介绍 现在在一些移动终端上面都会有自带的资源管理器,其实其并非是Android系统自带,而是手机产商与app开发商的合作而导致融合,借助第三方的开发软件预装在出厂的手机,是新时代下的另一 ...

  2. 开源中国 Android 文件夹管理

    1. [文件] 我的文件1.0.apk ~ 200KB     下载(54) 2. [图片] 腾讯手机管家截屏2013071301.png 3. [文件] MainActivity.java ~ 8K ...

  3. android 自定义文件夹管理器

    自定义android 文件夹管理器 由于近期项目要求,要客户可以自己选择文件夹路径,试了原生的文件夹管理器太难看了,而且还必须选择文件才行,PS:本人菜鸟,只能找到这样的原生方法,还请大佬勿喷,然后没 ...

  4. Android 编程之入门开发文件夹管理器开发详细讲解-1

    在我们的手持设备中,一般都会自带设备公司自己开发的文件管理系统.拍照系统之类的东东,今天我给大伙说说入门级开发的文件夹管理器,代码贼少 总共就6个类吧,没有夹杂其他外部应用,就是一个纯文件夹管理器 A ...

  5. 安卓手机/Android11系统无法访问android文件夹下的data目录,怎么解决?

    最近买了个IQOO10,因为现在还在上学,所以没买mate50. 本来鸿蒙系统里文件夹管理得好好的,上了安卓系统,就发现这个android文件夹下的data目录是没权限访问的!???? 于是我上网搜索 ...

  6. java邮件附件默认路径_JavaMail - 文件夹管理( Folder Management)

    JavaMail - 文件夹管理( Folder Management) 到目前为止,我们在前面的章节中主要使用了INBOX文件夹. 这是大多数邮件所在的默认文件夹. 有些系统可能将其称为INBOX, ...

  7. java将邮件保存到本地文件夹_JavaMail 邮件文件夹管理

    到目前为止,我们已经在前面的章节主要介绍收件箱文件夹的工作.这是大多数邮件位于其中的默认文件夹.有些系统可能会调用它的收件箱和其他一些可能被其他一些名字来称呼它.但是,你总是可以从JavaMail A ...

  8. 计算机基础文件与文件夹,计算机基础知识 第03部分 操作系统 文件与文件夹管理.ppt...

    文档介绍: 文件(夹)和程序的管理怕鄙扰蛆甩行陀渴侍往拽监扇散抑人蓟毒融莽斜撼熙掺拧茫炕惶甭喜妥超计算机基础知识第03部分操作系统文件与文件夹管理计算机基础知识第03部分操作系统文件与文件夹管理第3章 ...

  9. 优效文件助手-【深度】都2021年了,你还只会用文件夹管理电脑文件?

    一.引言 对于大部分人来说,想要在电脑里快速找到自己想要的文件,并不是一件容易的事.如果你恰好不喜欢整理电脑,当电脑里出现了大量 [新建文件夹1].[新建文件夹2]--时,这时候你要找到某个文件就更加 ...

最新文章

  1. 真人拳皇项目第九次Scrum总结——史经浩
  2. GNU/Linux的历史
  3. adb 测试工作中的总结
  4. KVC/KVO 使用细节和调用顺序
  5. 服务器小程序servlet的使用
  6. 【转】如何写出让同事无法维护的代码
  7. MySQL InnoDB 是如何存储数据的
  8. 研发工程师如何转型项目经理
  9. oracle怎么删除存储,删除Oracle分区存储是一个怎样的过程?
  10. Python扑克牌发牌(用类实现)
  11. [NHibernate]使用AttributeNHibernate.Mapping.Attributes
  12. 引入ELK前需要知道的“坑”(上)
  13. ASP实例代码:搞个长文章分页代码
  14. sqoop-1.4.7安装
  15. 两步路轨迹文件位置_关于两步路
  16. javashop源码,javashop电商系统源码授权
  17. C++语言课程设计——超市商品管理系统
  18. Matlab从细胞型转换为矩阵From cell to matrix
  19. ClassNotFoundException: org.apache.flink.shaded.guava18.com.google.common.collect.Lists
  20. 【手机端测试的关注点】Android 和 IOS 两大主流系统测试点

热门文章

  1. EXE文件结构及原理
  2. 【Java】数据交换
  3. 下列属于usb转串口的芯片是_USB转串口芯片——FT232R
  4. suse安装readline-devel
  5. 通过计算机的启动过程了解BIOS和UEFI
  6. ElasticSearch 集群安装,简单使用
  7. AI作画,NovelAI开源教程
  8. 计算机专业要不要考研——写的很棒
  9. 北航研究生院--《云计算技术原理》(1)
  10. 物联网大学生就业培训有哪些?物联网工程师培训机构靠谱吗?