File類的createNewFile()和mkdirs() mkdir()


createNewFile文件不存在則創建,存在則不創建並返回false,文件路徑必須存在才可創建路徑下的文件(注意它只能創建文件,即如果你給了/storage/emulated/0/hello/snow/這樣一個路徑,它最后也只是在hello文件夾中創建了snow的未知文件而不是文件夾,如上所述的創建成功的前提還是要/storage/emulated/0/hello/這樣的文件夾路徑存在,如果只有/storage/emulated/0這樣的文件夾路徑,它是不能夠創建hello文件夾的,所以創建失敗) 

 

mkdirs()和mkdirs()專門用來創建文件夾的,不存在則創建返回true,存在則返回false,區別在於mkdirs可以creating missing parent directories if necessary.同樣的路徑為/storage/emulated/0/hello/snow.bin也只是在hello文件夾啊下創建了snow.bin文件夾而不是文件。

 

所以一般需要createNewFile()和mkdirs()結合使用,先創建文件夾再創建文件。

File file = new File(filePath);
if (!file.exists()) {
file.getParentFile().mkdirs();
file.createNewFile();

}

mkdir:只能用來創建文件夾,且只能創建一級目錄,如果上級不存在,就會創建失敗。
mkdirs:只能用來創建文件夾,且能創建多級目錄 ,如果上級不存在,就會自動創建。(創建文件夾多用此)
createNewFile:只能用來創建文件,且只能在已存在的目錄下創建文件,否則會創建失敗。(FileOutputStream os=new FileOutputStream(file)也可創建文件,看情況使用)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM