您的位置:首页 > 移动开发 > Android开发

Android 文件存储路径的问题

2017-07-19 14:35 537 查看
        假如用户没有内置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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: