2011-11-11 83 views
2

我正在製作一個Android應用程序,用於在按下按鈕時創建一個新文件。我使用下面的代碼:文件被顯示爲目錄,而不是文件?

File file = new File(Environment.getExternalStorageDirectory() 
     +File.separator 
     +"myDirectory" //folder name 
     +File.separator 
     +"myFile.png"); //file name 
file.mkdirs(); 

然而,myFile.png實際上是被顯示爲一個目錄,而不是一個.png文件。

回答

5

由於file.mkdirs();mkdirs() - 用於通過文件名定的文件對象的參數製作目錄,如果你想使一個文件讓IO操作在文件中寫入,

你的情況:到做一個目錄,

File file = new File(Environment.getExternalStorageDirectory() 
    +File.separator 
    +"myDirectory" //folder name 
    +File.separator 
    +"myFile.png"); //file name 
    file.getParentFile().mkdirs(); 

這使得外部存儲的myDirectory文件夾。

2

根據its documentation File.mkdirs()「創建由該文件的尾部文件名命名的目錄」。

換句話說:您顯式地創建一個名爲myFile.png的目錄。如果這是不是你想要什麼,那麼你可能想要做file.getParentFile().mkdirs()來代替。

1
file.mkdirs() 

上面的代碼會創建新的目錄。

要創建該文件

try{ 
    File file = new File(Environment.getExternalStorageDirectory() 
     +File.separator 
     +"myDirectory" //folder name 
     +File.separator 
     +"myFile.png"); //file name 

    myFile.createNewFile(); 
    OutputStream filoutputStream = new FileOutputStream(myFile); 
    filoutputStream.write(b); 
    filoutputStream.flush(); 
    filoutputStream.close(); 
} catch (IOException e) { 
    // handler exception 
} 
相關問題