File sdCard = Environment.getExternalStorageDirectory(); File directory_pictures = new File(sdCard, "Pictures"); Log.i(TAG,"directory_pictures="+directory_pictures);
存储在external storage
这类文件不应该存在SD卡的根目录下,而应该存在mnt/sdcard/Android/data/< package name >/files/…这个目录下。这类文件应该随着App的删除而一起删除。例如一种格式的电子书,只有该app才可以打开,如果用户删除了该app,那么留下来的电子书就成为了一种无法打开的垃圾文件,所以应该随着该app一起删除掉。
获得这个路径的方法:
File externalFilesDir = getExternalFilesDir(null); Log.i(TAG, "externalFileDir = "+externalFilesDir);
我们看一下log中的内容为null,这是由于我们没有添加权限
添加权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
再看一下log:
这样路径就访问到了,我们注意到上面的getExternalFilesDir(null)参数传入的为null,这样默认访问的是files文件夹,我们可以指定子文件夹
File externalFilesDir = getExternalFilesDir("Caches");
Log.i(TAG, "externalFileDir = "+externalFilesDir);