2014-10-07 38 views
2

編碼Java有這個問題:file.createNewFile()拋出IOException「沒有這樣的文件或目錄」。檢查了其他答案,但似乎沒有任何幫助。任何想法?..java - file.createNewFile()IOException「沒有這樣的文件或目錄」

+5

....示例代碼出現此錯誤並需要堆棧跟蹤才能正確回答此問題 – EpicPandaForce 2014-10-07 15:04:55

+0

您的文件路徑可能是錯誤的。 – Sunny 2014-10-07 15:06:45

+0

是的,夥計們,讓每個人都減去這個問題,但這並沒有解決。我認爲這是問答環節,大家可以尋找解決方案,而不是混蛋競爭 – Mugi4ok 2014-10-19 17:53:58

回答

1

哦,我明白了。它似乎比Java更多的Windows問題。實際上,即使UAC被禁用,隨機應用程序仍然沒有權利在Win8上寫C:(或者你的系統上的任何東西)。儘管使用Win7從來沒有得到過這個問題。在IDE上使用「以管理員身份運行」沒有幫助,因爲它不會賦予Java編譯器這樣的權限。所以,我只是將我的項目文件夾移動到其他磁盤。此外,您可以更改訪問權限,但對我來說更容易。是的,沒有人提到在其他問題中發生這種情況的可能性,所以我希望這對任何人都有幫助。

1

我想你試圖在一個不存在的目錄中創建一個新文件。整個路徑需要存在,只有文件可以不存在。

+0

當然它確實存在,我不是那麼愚蠢=)我意識到問題出在哪裏,併發布了答案。感謝您的幫助=) – Mugi4ok 2014-10-07 15:45:50

+0

按照建議標記自己的答案然後:)。 – Juru 2014-10-07 17:31:10

0

您需要先創建文件夾。 createNewFile無法創建它們:

File folderFile = new File("c:\\this\\folder\\has\\subfolders"); 
folderFile.mkdirs(); 

File myFile = new File(folderFile,"myfile.txt"); 
myFile.createNewFile(); 
4

可能是因爲您正嘗試在不存在的目錄中創建文件。

使用mkdirs()首先創建任何缺失的父目錄。

File file = new File("foo/bar.txt") 
file.getParentFile().mkdirs(); 
file.createNewFile(); 
+1

我與OP有同樣的問題,並且mkdirs()函數是修復問題時缺少的組件。謝謝。 – 2016-03-23 23:01:37

相關問題