我有一个问题。我的工作目录是C:\ Users \ Damien \ Documents \ NetBeansProjects \。我想访问的文件位于C:\ Users \ Damien \ My Pictures \ body.jpg。我一直试图从Java获取该文件的路径无济于事。我该怎么办呢?我试着用这个
File f = new File("..\\My Pictures\\body.jpg");
try {
System.out.println(f.getCanonicalPath());
}
catch(Exception e){
System.out.println("file cannot be found");
}
但它会打印出来 C:\ Users \ Damien \ Documents \ NetBeansProjects \ My Pictures \ body.jpg。感谢。
答案 0 :(得分:0)
在这种情况下使用绝对路径确实是谨慎的,或者更好的是,将相关文件移动到项目资源文件夹中。
话虽如此,如果你真的需要某个文件的相对路径,你可以使用relativize(Path)
方法。
对于给定路径p
和另一条路径q
,这将构建p
和q
之间的相对路径。
在您的情况下,p
应为C:\Users\Damien\Documents\NetBeansProjects
,q
应为C:\Users\Damien\My Pictures\body.jpg
。
答案 1 :(得分:-1)
您可以使用绝对路径:
File f = new File("C:\\Users\\Damien\\My Pictures\\body.jpg");