外部存儲(chǔ),內(nèi)部存儲(chǔ)的區(qū)別
Internal storage:
- 總是可用的
- 這里的文件默認(rèn)只能被我們的app所訪問(wèn)腔丧。
- 當(dāng)用戶卸載app的時(shí)候,系統(tǒng)會(huì)把internal內(nèi)該app相關(guān)的文件都清除干凈设塔。
- Internal是我們?cè)谙氪_保不被用戶與其他app所訪問(wèn)的最佳存儲(chǔ)區(qū)域沧竟。
String getCacheDir=getCacheDir().getAbsolutePath();
路徑:/data/user/0/com.watermelon.myapplication/cache
String getFilesDir=getFilesDir().getAbsolutePath();
路徑:/data/user/0/com.watermelon.myapplication/files
External storage:
- 并不總是可用的圆凰,因?yàn)橛脩粲袝r(shí)會(huì)通過(guò)USB存儲(chǔ)模式掛載外部存儲(chǔ)器杈帐,當(dāng)取下掛載的這部分后,就無(wú)法對(duì)其進(jìn)行訪問(wèn)了专钉。
- 是大家都可以訪問(wèn)的挑童,因此保存在這里的文件可能被其他程序訪問(wèn)
- 當(dāng)用戶卸載您的應(yīng)用時(shí),只有在您通過(guò) getExternalFilesDir() 將您的應(yīng)用- 的文件保存在目錄中時(shí)跃须,系統(tǒng)才會(huì)從此處刪除您的應(yīng)用的文件
- External是在不需要嚴(yán)格的訪問(wèn)權(quán)限并且希望這些文件能夠被其他app所共享或者是允許用戶通過(guò)電腦訪問(wèn)時(shí)的最佳存儲(chǔ)區(qū)域站叼。
getExternalCacheDir().getAbsolutePath();
路徑:/storage/emulated/0/Android/data/packagename/cache
可以作為外部緩存的路徑,卸載app時(shí),會(huì)自動(dòng)刪除文件
Environment.getExternalStorageDirectory().getAbsolutePath();
路徑:/storage/emulated/0
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();
路徑:/storage/emulated/0/DCIM
getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath();
路徑:/storage/emulated/0/Android/data/packagename/files/Pictures