如何获取当前工作目录之外的文件的绝对路径[java]

时间:2016-03-19 10:47:00

标签: java file path absolute-path working-directory

我正在尝试使用Java中的FileURL类读取当前工作目录之外的文件。我知道默认情况下,当前工作目录由.“代表”。

假设我的Java类在/folders/Desktop/MyClass.java下,如果我想在file1.txt中读取文件/folders/Desktop/file1.txt,我可以执行以下操作:

URL url = getClass().getResource("./file1.txt");  /* or "./anotherFolder/../file1.txt", or simply "file1.txt"*/
File f = new File(url.getPath());

一切都按预期工作。

但是我应该怎么做才能读取不在当前工作目录中且不在其子目录中的文件?例如,如果文件的路径是/folders/file1.txt?我到处搜索,但找不到任何东西。我尝试了../file1.txt./../file1.txt和其他人,但没有任何作用。也许我错过了什么,或者我没有在正确的地方搜索过。

2 个答案:

答案 0 :(得分:0)

如果您没有提供文件名的路径,那么java正在搜索应用程序运行的目录中搜索。

实施例

如果文件位于项目的主文件夹中,则会打印true

public static void main(String[] args) {
        final File foo = new File("asd.txt");
        System.out.println(foo.exists());
    }

修改:

如果文件不在该文件夹中那么你可以去" up"在文件夹结构中使用" ./"或" ../"运营商... 或深入文件夹File("/src/asd.txt"),例如文件在src文件夹中..

enter image description here

答案 1 :(得分:0)

如果要访问不低于当前工作目录的文件,您将以编程方式遍历文件系统,或者您将通过用户输入获得绝对路径并使用{{1}构造java.io.File对象}。您也可以考虑使用较新的new File(absolutePathAsString) API。