【问题标题】:Java jdk1.8 file creation in windows 7 [duplicate]Windows 7中的Java jdk1.8文件创建[重复]
【发布时间】: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();

标签: java windows io


【解决方案1】:

好的。所以我解决了。这至少在我看来是不可思议的。 至少我很高兴我不是问题。 这是我第一次尝试命名时 Notepad++ 显示的内容:pic

我的第二次尝试:pic

但是可以创建“whatever.txt”。

这个想法应该归功于 Elliott Frisch,以便用记事本进行测试。

【讨论】:

  • 看起来像 *.com/questions/4477368/con-txt-and-c 的副本?
  • 这是真的,但我怎么知道要搜索“con.*”?这几乎是第一次没有问题的一步。
  • 没有一个理智的软件工程师会设计一个操作系统来保留出现在任何文件系统中任何位置的特定文件名。纯粹的疯狂。