外部存储
1 String state = Environment.getExternalStorageState(); 2 File externalFile = context.getExternalFilesDir( null ); 3 File[] externalFiles = context.getExternalFilesDirs( Environment.DIRECTORY_PICTURES ); 4 for (File file : externalFiles) { 5 Log.d( TAG, "state="+ state + ";\nexternalFiles=" + file + ";\nexternalFile="+externalFile); 6 try { 7 FileOutputStream fileOutputStream = new FileOutputStream( new File( file, "aaaa.txt" ) ); 8 fileOutputStream.close(); 9 } catch (IOException e) { 10 e.printStackTrace(); 11 } 12 }
getExternalFilesDirs获取的有两个外部存储,getExternalFilesDir是一个。这两个外部存储,一个是主外部存储 即手机本身存储中分为 内部存储和外部存储的 外部存储部分,另一个是SD卡的挂载路径。
getExternalFilesDir(),获取就是主外部存储路径。
getExternalFilesDirs(),获取所有外部存储的路径,包括本身的外部存储 和 扩展出来的存储(如SD卡)。
在一开始就说过,应用存储到外部存储的文件 当应用卸载时只有getExternalFilesDir()路径下的会被删除。
上面代码在log后,所有外部存储路径下 都创建了aaaa.txt的文件,实际操作结果也是符合的,当卸载应用时,/storage/553C-0E05/Android/data/com.flx.testfilestorage/files/这个下面的aaaa.txt 仍然存在的。