如何获取不在当前工作目录中的文件的路径

时间:2015-07-20 18:38:22

标签: java io filepath

我有一个问题。我的工作目录是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。感谢。

2 个答案:

答案 0 :(得分:0)

在这种情况下使用绝对路径确实是谨慎的,或者更好的是,将相关文件移动到项目资源文件夹中。

话虽如此,如果你真的需要某个文件的相对路径,你可以使用relativize(Path)方法。

对于给定路径p和另一条路径q,这将构建pq之间的相对路径。

在您的情况下,p应为C:\Users\Damien\Documents\NetBeansProjectsq应为C:\Users\Damien\My Pictures\body.jpg

答案 1 :(得分:-1)

您可以使用绝对路径:

File f = new File("C:\\Users\\Damien\\My Pictures\\body.jpg");