我确信这是一个相对简单的问题,我实际上认为它可能更多是Windows的问题而不是Java问题。
我有一种方法可以将文件复制到一个新目录,该目录包含两个File对象,一个用原始路径创建的File,以及一个用所需的副本路径创建的File。我确信该方法有效,因为我已经使用它成功地将文件复制到我的桌面上。
但是,使用我实际需要的路径会产生错误:
java.io.FileNotFoundException: PATH (系统找不到路径 指定)
PATH
是我尝试使用的路径。
这是我的猜测: 我正在制作这个程序,以便在另一台机器上使用。因此,我尝试使用的路径是:
C:\用户\ XXXXXX \ rest_of_path \ filename.file
其中XXXXXX
是我为该程序编写的机器上的主要用户。
我的系统上存在此目录,但XXXXXX
不是我系统上的用户。所以我猜测Windows因此导致了问题。
我现在正在更改我的代码以使用依赖于机器的解决方案,并且不是硬编码的(System.getProperty)。
但是,从学术角度来看,我真的很想知道为什么会出现这个问题,作为Windows用户和Java用户。
提前致谢。
编辑:当我指的是双反斜杠时,意外地使用正斜杠。为了确保它不是拼写错误,我只是使用windows复制目录,并将其粘贴到我的程序中(然后在反斜杠上加倍)。
编辑:一些用户建议的东西比我想要的东西要干净得多。我打开这个问题,因为我很好奇为什么它不起作用。
编辑:我使用了上面的解决方案,我对它非常满意。我仍然不知道为什么Windows不允许我访问原始路径,但我想我真的不在乎这一点。谢谢大家!
答案 0 :(得分:2)
在java和大多数编程语言中,您并不总是必须提供文件的确切目录。虽然看到你用来获取文件的代码会很高兴,但我会提供它是如何完成的。
我假设您没有使用new File("file.txt")
,因为它会从您的程序所在的文件夹中检索文件,并且不需要像C:\...\...\...
这样的整个地址。您当然不希望使用整个地址,因为不同的操作系统显然使用不同的路径。
您可以做的最好的事情是将您的文件和请求的文件夹放在相对于您的程序的某个位置(无论是类文件还是.jar文件)。
但是使用Windows,您可以确定使用System.getProperty("...")
可以将目录URL检索为文件/文件夹的相对路径。
有关System.getProperty的文档:http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
我可能根本没有帮助或回答你的问题。但希望你能找到解决方案。