<转>Android 文件夹访问路径~

很多时候忘掉写东西。记下方便查找~
File dateDir = Environment.getDataDirectory();
dateDir.getAbsolutePath(); /data
Environment.getDataDirectory().getAbsolutePath();  /mnt/sdcard
context.getExternalFilesDir(null); /mnt/sdcard/Android/data/com.example.client/files 
context.getFilesDir().getAbsolutePath(); /data/data/com.example.client/files
context.getCacheDir().getAbsolutePath(); /data/data/com.example.client/cache
这里要说明一下的是
1.使用Environment.getExternalStorageDirectory可以得到系统的sdcard路径,不过这个一般在各个手机上都是一样的。
2.使用context.getExternalFilesDir可以得到系统为程序在sdcard上分配的存储路径,据说放在这里卸载程序时目录也会被删除;
3.使用context.getFileDir可以获得程序的data目录的files子目录,如果有小文件,sdcard又不存在时可以选择放这里。

内置私有目录

  1. /data/data/[packagename]/files 文件缓存目录,一般存小的文件缓存,如果是图片,不建议放这里,一般放到外置卡。

    File file = getFilesDir(); 返回该目录 
    写文件到该目录下可以像这样

    FileOutputStream fos = null;
        try {
            fos = appontext.openFileOutput(name, Context.MODE_PRIVATE);
            fos.write(content.getBytes());
        } catch (Exception e) {
        }finally{
            try {
                if(null != fos){
                    fos.close();
                } 
            }catch (Exception e) {
            }
        }
    
  2. /data/data/[packagename]/cache目录,存放一些其他缓存 File cache = getCacheDir();

  3. /data/data/[packagename]/databases,存放数据库

  4. /data/data/[packagename]/lib,应用的so目录

  5. /data/data/[packagename]/shared_prefs 应用的SharedPreferences保存

可以自己创建其他目录吗? 可以的 
使用 File ownDataPath = getDir(“service”,Context.MODE_PRIVATE); 
使用它可以创建app_service目录,放什么自己定义

外置SDCARD目录

  1. 外置缓存目录(File sdcache = getExternalCacheDir();) 
    /storage/emulated/0/Android/data/[packagename]/cache 
    一些重要性不高的cache或者大文件放到这里,比如图片缓存

  2. 外置文件缓存目录(File sdfile = getExternalFilesDir(null);), 
    /storage/emulated/0/Android/data/[packagename]/files 
    一些重要性不高的file cache或者大文件放到这里 
    注意: /storage/emulated/0/Android/data/[packagename] 在android2.2之后,在应用卸载后也会一并卸载。所以不需要用什么清理缓存的软件清理的。


猜你喜欢

转载自blog.csdn.net/chungehenyy/article/details/50749036
今日推荐