在编写Java代码时遇到了这个问题:file.createNewFile() 抛出 IOException "No such file or directory"。查看了其他答案,但都没有什么帮助。有什么建议吗?
很可能您正在尝试在不存在的目录中创建文件。
首先使用mkdirs()
创建任何缺失的父文件夹。
File file = new File("foo/bar.txt")
file.getParentFile().mkdirs();
file.createNewFile();
我认为您正在尝试在不存在的目录中创建新文件。整个路径需要存在,只有文件可以不存在。
哦,我明白了。这似乎更像是Windows的问题而不是Java的问题。实际上,即使禁用用户账户控制(UAC),某些随机应用程序仍然没有权限在C盘(或者你系统中的任何其他盘)上写入文件。虽然在Win7中从未遇到过此问题。在IDE上使用“以管理员身份运行”也无济于事,因为它并没有将这些权限授予Java编译器。所以,我只是将我的项目文件夹移动到了其他磁盘。当然,你也可以更改访问权限,但对我来说更简单。是的,在其他问题中没有人提到过类似问题的发生,所以我希望这对任何人都有所帮助。
首先您需要创建文件夹。createNewFile无法创建文件夹:
File folderFile = new File("c:\\this\\folder\\has\\subfolders");
folderFile.mkdirs();
File myFile = new File(folderFile,"myfile.txt");
myFile.createNewFile();