Android - 文件操作简单总结

有时候应用程序需要保存一些数据,有如下选择:
1、保存到SD卡,有两种方式:
a、在SD卡的根目录下创建一个文件夹,用于保存数据,
b、获取SDCard/Android/data/你的应用的包名/...目录,将数据保存在里边。
首先看a方式,这会使用到Environment 类,Environment 位于android.os包下,API解释为 Provides access to environment variables.
几个常用的方法,关于获取路径的(设备不同,获取到的值可能会有差异):
<span style="background-color: rgb(255, 255, 255);">strPath1 = Environment.getRootDirectory().getAbsolutePath();		/system
strPath2 = Environment.getDataDirectory().getAbsolutePath();		/data
strPath3 = Environment.getDownloadCacheDirectory().getAbsolutePath();		/cache
strPath4 = Environment.getExternalStorageDirectory().getAbsolutePath();		/storage/emulated/0
strPath5 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath();
/storage/emulated/0/Music
strPath6 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();
/storage/emulated/0/DCIM</span>
关于获取状态的:
strState = Environment.getExternalStorageState(); 	mounted
外部存储的状态常用的有以下几个值:
MEDIA_CHECKING 正在检查
MEDIA_MOUNTED 已经挂载
MEDIA_MOUNTED_READ_ONLY 已经挂载,只读
MEDIA_REMOVED 被移除
MEDIA_UNMOUNTABLE 无法挂载
MEDIA_UNMOUNTED 没有挂载
isRemovable = Environment.isExternalStorageRemovable();		false
使用a方式保存数据时,通常的做法是:
... ...
b方式会用到以下方法:
strCachePath = getExternalCacheDir().getAbsolutePath();	/storage/emulated/0/Android/data/com.hwgt.filepath/cache
strFilePath = getExternalFilesDir(null).getAbsolutePath();		/storage/emulated/0/Android/data/com.hwgt.filepath/files
strFilePath = getExternalFilesDir("test").getAbsolutePath(); 
/storage/emulated/0/Android/data/com.hwgt.filepath/files/test
getExternalCacheDir()方法获取到的是 SDCard/Android/data/你的应用的包名/cache目录
getExternalFilesDir()方法获取到的是SDCard/Android/data/你的应用的包名/file目录
使用a和b两种方式的区别是:
使用a方式,当应用被卸载掉之后,SD卡中的数据不会被清除,会留下垃圾数据
使用b方式,当应用被卸载掉之后,SDCard/Android/data/你的应用的包名/这个目录都会被删除
并且,可以通过 设置-应用程序管理器-应用程序信息-清除缓存(清除数据)来清除cache目录(file目录)的文件
当SD卡不可用时,使用下列方法:
strCachePath = getCacheDir().getAbsolutePath();	/data/data/com.hwgt.filepath/cache
strFilePath = getFilesDir().getAbsolutePath();	/data/data/com.hwgt.filepath/files
获取数据存储路径




posted on 2016-04-18 10:17  快乐的码农  阅读(559)  评论(0编辑  收藏  举报