Java-找不到确实存在的文件路径

Java-找不到确实存在的文件路径,java,windows,file,exception,Java,Windows,File,Exception,我相信这是一个相对简单的问题,实际上我认为Windows的问题可能比Java的问题更大 我有一种将文件复制到新目录的方法,它使用两个文件对象,一个是使用原始路径创建的文件,另一个是使用所需的副本路径创建的文件。我确信这个方法是有效的,因为我用它成功地将一个文件复制到了我的桌面上 但是,使用实际所需路径会产生错误: java.io.FileNotFoundException:PATH(系统找不到路径 (指定) 其中,路径是我尝试使用的路径 以下是我的猜测: 我制作这个程序是为了在另一台机器上使用。

我相信这是一个相对简单的问题,实际上我认为Windows的问题可能比Java的问题更大

我有一种将文件复制到新目录的方法,它使用两个文件对象,一个是使用原始路径创建的文件,另一个是使用所需的副本路径创建的文件。我确信这个方法是有效的,因为我用它成功地将一个文件复制到了我的桌面上

但是,使用实际所需路径会产生错误:

java.io.FileNotFoundException:PATH(系统找不到路径 (指定)

其中,
路径
是我尝试使用的路径

以下是我的猜测: 我制作这个程序是为了在另一台机器上使用。因此,我尝试使用的路径是:

C:\Users\XXXXXX\rest\u of\u path\filename.file

其中,
XXXXXX
是我为其编写程序的机器上的主要用户

此目录存在于我的系统上,但
XXXXXX
不是我系统上的用户。所以我猜Windows正是因为这个原因导致了一个问题

我现在正在更改代码,以使用一个依赖于机器的解决方案,而不是硬编码的解决方案(System.getProperty)

然而,我真的很想知道,从学术角度来看,作为Windows和Java用户,为什么会出现这个问题

提前谢谢

编辑:当我指的是双反斜杠时,意外地使用了前斜杠。为了确保这不是一个拼写错误,我只需使用windows复制目录,并将其粘贴到我的程序中(然后在反斜杠上加倍)

编辑:一些用户提出了一些比我一开始要做的要干净得多的建议。我留下这个问题,因为我很好奇为什么它不起作用


编辑:我使用了上述解决方案,对此我非常满意。我仍然不知道为什么Windows不允许我访问原始路径,但我想我现在真的不在乎。谢谢大家

在java和大多数编程语言中,您不必总是提供文件的确切目录。虽然很高兴看到您用来获取文件的代码,但我将提供如何实现

我假设您没有使用
新文件(“File.txt”)
,因为它从您的程序所在的文件夹中检索文件,并且不需要像
C:\…\ \…\
这样的完整地址。显然,您不想使用整个地址,因为不同的操作系统使用不同的路径

最好是将文件和请求的文件夹放在与程序相关的位置(无论是类文件还是.jar文件)

但在Windows中,您可以确保使用
System.getProperty(“…”)
可以检索目录URL作为文件/文件夹的相对路径

有关System.getProperty的文档如下:


我可能根本没有帮助或回答你的问题。但希望您能找到一个解决方案。

在您的代码中,是否使用前斜杠,如上面的文本所示?如果使用反斜杠,则必须将其加倍,例如“C:\\Users\\XXXXXXX\\rest\u of_path\\filename.file”。如果使用正斜杠,请粘贴相关代码。@AndyThomas,而不是使用\\,使用File.pathSeparator不是更好吗?您应该使用正向斜杠:它们在任何地方都有效,并且不必在源代码中加倍。哪条路不存在?您说xxxx存在于Users下,但您没有具有该名称的用户,这怎么可能?1。即使您在Windows上,在Java中,也始终在文件路径中使用前斜杠——无论如何,Java将负责转换。使生活更容易:)2。通常,最好使用System.getProperty(“user.home”)来查找主目录,这样就不必硬编码了。谢谢您的回复。不幸的是,这个程序是在一个现有的(和过时的)文件系统上使用的,所以我不能把它放在一个与我的程序相关的地方。我可能会按照您和用户Rop的建议使用System.getProperty解决方案。这似乎比我想做的更干净。然而,我现在很好奇为什么硬编码不起作用,所以我不打算将其标记为解决方案,除非我没有得到与此相关的响应。