Android 文件存储路径的问题
2017-07-19 14:35
627 查看
假如用户没有内置sdk怎么办,假如我想存在apk的私有目录该怎么办,假如我不想在apk私有目录中存储文件,假如我要存储长期的文件该怎么办,假如我仅仅是想要进行缓存的存储,我该存在哪儿,用什么方法去获得存储文件的路径?
存放在私有目录下文件,一般情况下其他应用是不能访问的,但是当你的程序被卸载的时候这些文件也会被删除掉,而放在sd卡中则恰好相反。作为优秀的程序员,应该尽可能的判断更多的情况,当你要把文件进行存储的时候,强烈建议你判断一下sd卡是否可用。
public String getDiskCacheDir(Context context) {
String cachePath = null;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
|| !Environment.isExternalStorageRemovable()) {
cachePath = context.getExternalCacheDir().getPath();
///sdcard/Android/data/<application package>/cache 这个路径
} else {
cachePath = context.getCacheDir().getPath();
///data/data/<application package>/cache这个路径
}
return cachePath;
}
以下是一些获取相应存储路径的APi,希望各位笑纳:
getCacheDir()方法用于获取/data/data/<application package>/cache目录
getFilesDir()方法用于获取/data/data/<application package>/files目录
Context.getExternalFilesDir()用于获取SDCard/Android/data/你的应用的包名/files/
目录
Context.getExternalCacheDir()用于获取SDCard/Android/data/你的应用包名/cache/目录
Environment.getDataDirectory()
= /data
Environment.getDownloadCacheDirectory()
= /cache
Environment.getExternalStorageDirectory()
= /mnt/sdcard
Environment.getExternalStoragePublicDirectory(“test”)
= /mnt/sdcard/test
Environment.getRootDirectory()
= /system
getPackageCodePath()
= /data/app/com.my.app-1.apk
getPackageResourcePath()
= /data/app/com.my.app-1.apk
getCacheDir() = /data/data/com.my.app/cache
getDatabasePath(“test”) = /data/data/com.my.app/databases/test
getDir(“test”, Context.MODE_PRIVATE) = /data/data/com.my.app/app_test
getExternalCacheDir() = /mnt/sdcard/Android/data/com.my.app/cache
getExternalFilesDir(“test”) = /mnt/sdcard/Android/data/com.my.app/files/test
getExternalFilesDir(null) = /mnt/sdcard/Android/data/com.my.app/files
getFilesDir() = /data/data/com.my.app/files
存放在私有目录下文件,一般情况下其他应用是不能访问的,但是当你的程序被卸载的时候这些文件也会被删除掉,而放在sd卡中则恰好相反。作为优秀的程序员,应该尽可能的判断更多的情况,当你要把文件进行存储的时候,强烈建议你判断一下sd卡是否可用。
public String getDiskCacheDir(Context context) {
String cachePath = null;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
|| !Environment.isExternalStorageRemovable()) {
cachePath = context.getExternalCacheDir().getPath();
///sdcard/Android/data/<application package>/cache 这个路径
} else {
cachePath = context.getCacheDir().getPath();
///data/data/<application package>/cache这个路径
}
return cachePath;
}
以下是一些获取相应存储路径的APi,希望各位笑纳:
getCacheDir()方法用于获取/data/data/<application package>/cache目录
getFilesDir()方法用于获取/data/data/<application package>/files目录
Context.getExternalFilesDir()用于获取SDCard/Android/data/你的应用的包名/files/
目录
Context.getExternalCacheDir()用于获取SDCard/Android/data/你的应用包名/cache/目录
Environment.getDataDirectory()
= /data
Environment.getDownloadCacheDirectory()
= /cache
Environment.getExternalStorageDirectory()
= /mnt/sdcard
Environment.getExternalStoragePublicDirectory(“test”)
= /mnt/sdcard/test
Environment.getRootDirectory()
= /system
getPackageCodePath()
= /data/app/com.my.app-1.apk
getPackageResourcePath()
= /data/app/com.my.app-1.apk
getCacheDir() = /data/data/com.my.app/cache
getDatabasePath(“test”) = /data/data/com.my.app/databases/test
getDir(“test”, Context.MODE_PRIVATE) = /data/data/com.my.app/app_test
getExternalCacheDir() = /mnt/sdcard/Android/data/com.my.app/cache
getExternalFilesDir(“test”) = /mnt/sdcard/Android/data/com.my.app/files/test
getExternalFilesDir(null) = /mnt/sdcard/Android/data/com.my.app/files
getFilesDir() = /data/data/com.my.app/files
相关文章推荐
- android之文件存储路径问题
- Android文件存储往SD卡中写入文件路径出错问题求解。
- 关于存储文件路径的问题
- 安卓各文件存储路径汇总(Android file path)
- Android获取手机内置外置存储文件列表,完美解决各种rom各种系统版本的获取方式不用的问题
- 对android默认存储路径中文件的读写
- android存储路径问题
- Android sdcard追加存储文件问题
- Android获取可存储文件所有路径
- android中使用csv文件来存储数据中遇到的几个问题
- android之文件存储路径
- Android编译系统中头文件搜索路径顺序的一个问题
- android 内部缓存器(手机自带的存储空间中的当前包文件的路径)
- 谈谈Android App运行时文件系统路径问题
- Android数据库文件路径问题
- andorid 解压zip文件、android中文文件存放问题、asset里不能放中文名文件的解决方法、用File读asset的路径的问题、把asset的文件写入机器
- 解决Android手机自带内部存储路径存在但是却获取不到内容的问题
- 添加文件【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed、Cocos2dxActivity cannot be 路径等问题
- 关于存储文件路径的问题