getExternalStorageDirectory()和getExternalFilesDir()的区别

App专属文件:app专属文件就是那些只有该app才可以使用的文件,这类文件随app的删除而删除,他们可以被存储两个地方:internal storage和external storage;internal storage就是手机上自带很小的一块区域,所以要正确实用;external storage就是SD卡,SD卡可能被卸下,所以SD卡不是任何时间都可以,因此我们必须降一些重要的数据文件以及一些配置文件放在internal storage中。将一些大的图片或文件放到external storage中。

存储在internal storage:这是你app私有的目录,你的shared preference文件数据库文件都在这里。目录为"data/data//file/.."   访问方法为: File fdir=gerFilesDir();

存储在external storage:这类文件存在在"mnt/sdacard/Android/data//file/.."目录下。随app的删除而删除。

获取这个路径的方法:File eFile=getExternalFilesDir(null);

添加文件权限

getExternalFilesDir(null)参数传入的为null,这样默认访问的是files文件夹,可以指定子文件夹。

有些时候我们的手机没有安装SD卡,所以我们使用前需要判断一下:

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//SD卡已装入}

App独立文件:app独立文件就是那些不依赖某些特定app的文件,这类文件当我们删除应用之后,还应该保留在手机上的。

访问方式:

(1)File sdCard=Environment.getExternalStorageDirectory();这个路径为sd卡的根路径mnt/sdcard

(2)File directory_pictures = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

你可能感兴趣的:(getExternalStorageDirectory()和getExternalFilesDir()的区别)