2014-10-07 468 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

相关问题