Android 学习笔记 第五季 10 文件系统
来源:互联网 发布:数据透视表 总计 编辑:程序博客网 时间:2024/06/09 16:44
这篇来介绍和 File 有关的东西。
凡是从网络下载来的东西都可以以文件的形式保存,
所以了解 Android 的文件系统也是很重要的。
外部存储和内部存储
任何一台智能手机都将存储空间分为两部分,外部存储和内部存储。
对于有 SD 卡的手机来说,可移除的 SD 卡就是它的外部存储,剩余的是内部。
尽管越来越多的手机不再配有 SD 卡,但存储空间依旧分为了两部分。
内部存储是永远是 avaiable 的,而外部则不一定。
所以,需要检测下外部存储是否可用,再拟定存储策略。
APP 被安装在哪?
/data/data/com.example.myapp/files/data/data/com.example.myapp/cache
APP 默认情况下是安装在内部存储中的,路径如上所示。
com.example.myapp/ 目录下的文件,默认情况下只有该 APP 才有访问的权限。
而且该目录下的文件会在卸载 APP 时被清除。
可以看到有两个目录,普通文件目录和缓存文件目录。
区别是缓存目录下的文件可能随时被系统删除。
外部存储
public boolean isExternalStorageWritable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false;}
这个函数用于判断外部存储是否可读写。
外部存储分为两类文件,共有和私有文件。
先看下私有文件。
Log.e("result2", getExternalFilesDir(null).toString()); Log.e("result2", getExternalCacheDir().toString());
/storage/emulated/0/Android/data/com.example.myapp/files/storage/emulated/0/Android/data/com.example.myapp/cache
1. 同样是分成了两个目录。
2. 卸载时会清除这些文件。
不同点:
1. 没有访问权限限制。
2. 普通文件有了种类的区分,像是音乐或图片。
这样一来,系统能更好地根据类型来处理这些文件。
公有文件也是类似的,但不会再卸载时被清除。
Log.e("result2", getExternalFilesDir(Environment.DIRECTORY_MUSIC).toString()); Log.e("result2", getExternalFilesDir(Environment.DIRECTORY_PICTURES).toString());
/storage/emulated/0/Android/data/com.example.myapp/files/Music/storage/emulated/0/Android/data/com.example.myapp/files/Photo
公有文件也是类似的,但不会再卸载时被清除。
Log.e("result2", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).toString()); Log.e("result2", Environment.getExternalStorageDirectory().toString());
/storage/emulated/0/Music/storage/emulated/0
0 0
- Android 学习笔记 第五季 10 文件系统
- Android 学习笔记 第五季 2 Density
- Android 学习笔记 第五季 3
- Android 学习笔记 第五季 6 Activity
- Android 学习笔记 第五季 9 SharedPreferences
- Android 学习笔记 第五季 11 数据库
- Android学习笔记第五章
- 第五周Android学习笔记
- Android 学习笔记 第五季 1 Android Studio
- Android 学习笔记 第五季 4 Size Qualifiers
- Android 学习笔记 第五季 5 .9 图片
- Android 学习笔记 第五季 8 Fragment 1
- Android 学习笔记 第五季 12 图片处理
- Android第五周的学习笔记
- Android学习的第五周笔记
- 学习笔记 第五章
- 第五十四天学习笔记
- fat文件系统学习笔记
- 进程-IPC 套接字 (四)
- Hadoop-0.20.0源代码分析(02)
- 《unix高级环境编程》进程间通信——信号量
- 值得一看的C++代码编写建议
- Palindrome Partitioning
- Android 学习笔记 第五季 10 文件系统
- js基础的实例
- 《unix高级环境编程》进程间通信——共享内存
- php表单刷新后保留值
- POJ2485
- ios文件
- Hadoop-0.20.0源代码分析(03)
- 一组学生成绩处理
- 《unix高级环境编程》套接字——套接字基本描述