Android 文件存储路径的问题

        假如用户没有内置sdk怎么办,假如我想存在apk的私有目录该怎么办,假如我不想在apk私有目录中存储文件,假如我要存储长期的文件该怎么办,假如我仅仅是想要进行缓存的存储,我该存在哪儿,用什么方法去获得存储文件的路径?

       存放在私有目录下文件,一般情况下其他应用是不能访问的,但是当你的程序被卸载的时候这些文件也会被删除掉,而放在sd卡中则恰好相反。作为优秀的程序员,应该尽可能的判断更多的情况,当你要把文件进行存储的时候,强烈建议你判断一下sd卡是否可用。

  1. public String getDiskCacheDir(Context context) {  
  2.     String cachePath = null;  
  3.     if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())  
  4.             || !Environment.isExternalStorageRemovable()) {  
  5.         cachePath = context.getExternalCacheDir().getPath();
  6. ///sdcard/Android/data/<application package>/cache 这个路径  
  7.     } else {  
  8.         cachePath = context.getCacheDir().getPath();
  9. ///data/data/<application package>/cache这个路径 
  10.     }  
  11.     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

猜你喜欢

转载自blog.csdn.net/sxk874890728/article/details/75378266