【发布时间】:2015-08-28 00:21:30
【问题描述】:
我花了太多时间在一个微不足道的任务上,比如在 当前工作目录。
我尝试了File.createNewFile() 方式和Files.createFile() 方式。
最新的代码版本是:
Path p= Paths.get(current_dir,confile);
if(!Files.exists(p))
{
Files.createDirectories(p.getParent());
Files.createFile(p);
}
抛出的异常是:
Working dir F:\ProgCourse\java_projects\DBProject
java.nio.file.NoSuchFileException: F:\ProgCourse\java_projects\DBProject\con.txt
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.createFile(Files.java:632)
此文件夹F:\ProgCourse\java_projects\DBProject\
确实存在,我拥有它,我拥有它的所有权利,我是机器上的管理员。此外,NetBeans 已经在创建我的
里面的项目文件。我什至通过里面的 cd 命令测试了路径
控制台(cmd.exe),它工作。
我可以向您保证,从我的角度来看,该路径是有效的,我检查并
它确实存在。问题是 java 将什么视为路径以及为什么 java 和操作系统不同意。
如果这样一件微不足道的事情可以占用这么多时间,那我不知道我该怎么做。我的意思是我对我的技能、java、windows 7 真的很失望。我的意思是!
【问题讨论】:
-
您确定这是本地驱动器吗?你能在文件夹中用记事本创建
con.txt吗? -
是的,我没有安装驱动器。正如我所说,我确实在 cmd.exe 上对其进行了测试。
-
你测试过你可以在那里 cd... 你测试过你可以在那里写吗?
-
根据堆栈跟踪,问题是文件“con.txt”不存在(即它不会抱怨目录,而是抱怨应该存在于您的目录中的文件)我只是在评论这个,因为你提到的是目录,而不是文件
-
你可以试试这个路径 parentDir = project.getFilePath().getParent();