我在新目录中创建新文件:
File logFile = new File("C:/test/test/test.txt");
logFile.getParentFile().mkdirs();
logFile.createNewFile();
如果我尝试创建新文件(没有文件扩展名,只有“test”文件):
File logFile = new File("C:/test/test");
logFile.getParentFile().mkdirs();
logFile.createNewFile();
我明白了:
FileNotFoundException(访问被拒绝)
答案 0 :(得分:3)
在Windows的现代版本中,普通用户无权在没有管理权限的情况下写入c:/。您的代码看起来没问题(就使用mkdirs()而言)但我认为您遇到了这个问题。
尝试在c:\ users \ YourUserName中创建一个目录 - 这是一个java程序的问题,缺少管理权限来写入c:\
答案 1 :(得分:1)
简单:C:/test/test
是现有目录,createNewFile
将失败。该例外只有一个非常具有误导性的名称FileNotFoundException
。
(此外createNewFile()
通常不需要,但我接受了,之后你只打开文件进行追加。)