Android常用文件夹

前言

有项目开发中,关于存储文件时,要使用设备存储目录,傻瓜式写法直接写固定目录例如“sdcard/Android/0/data”,这么写可以,但是不建议这么写,如果设备的系统是定制的,可能会遇到兼容性问题。

常用文件夹

系统已经提供了API提供常用的文件夹,API可分为两类Context和Environment。

第一类 Context

这里一类要通过上下文Context,代码如下

// Context.getExternalCacheDir()
System.out.println("Context.getExternalCacheDir() = " + appContext.getExternalCacheDir());
// Context.getExternalFilesDir(type)
System.out.println("Context.getExternalFilesDir(type) = " + appContext.getExternalFilesDir(null));
// Context.getFilesDir()
System.out.println("Context.getFilesDir() = " + appContext.getFilesDir().getPath());
// Context.getNoBackupFilesDir()
System.out.println("Context.getNoBackupFilesDir() = " + appContext.getNoBackupFilesDir().getPath());

输出结果

Context.getExternalCacheDir() = /storage/emulated/0/Android/data/com.pax.demo/cache
Context.getExternalFilesDir(type) = /storage/emulated/0/Android/data/com.pax.demo/files
Context.getFilesDir() = /data/data/com.pax.demo/files
Context.getNoBackupFilesDir() = /data/data/com.pax.demo/no_backup

结果统计,com.jqchen.demo是应用包名。

方法 路径
getExternalCacheDir() /storage/emulated/0/Android/data/com.jqchen.demo/cache
或者 /sdcard/Android/data/com.jqchen/cache
getExternalFilesDir(type) /storage/emulated/0/Android/data/com.jqchen.demo/files
或者 /sdcard/Android/data/com.jqchen.demo/files
getFilesDir() /data/data/com.jqchen.demo/files
getNoBackupFilesDir() /data/data/com.pax.demo/no_backup

第二类 Environment

这一类API通过Environment访问。
代码如下

// Environment.getExternalStorageDirectory()
System.out.println("Environment.getExternalStorageDirectory() = " + Environment.getExternalStorageDirectory().getPath());
// Environment.getDownloadCacheDirectory()
System.out.println("Environment.getDownloadCacheDirectory() = " + Environment.getDownloadCacheDirectory().getPath());
// Environment.getDataDirectory()
System.out.println("Environment.getDataDirectory() = " + Environment.getDataDirectory().getPath());

输出结果

Environment.getExternalStorageDirectory() = /storage/emulated/0
Environment.getDownloadCacheDirectory() = /cache
Environment.getDataDirectory() = /data

结果统计

方法 路径
getExternalStorageDirectory() /storage/emulated/0
或者 /sdcard
getDownloadCacheDirectory() /cache
getDataDirectory() /data

喜欢的可以点赞,有问题欢迎评论,谢谢!

你可能感兴趣的:(Android开发)