如何编写路径以向上一级然后进入另一个目录。

19

我试图在一个Java程序中(比如Program.java)使用相对路径打开一个文件。

我有以下两个目录:

ProjectWork\Business\Scenarios\SC01.txt
ProjectWork\SourceCode\Program.java

现在,我想从Program.java中编写一个相对路径来访问SC01.txt

String path = // <-- not sure how to write the path
File scenario = new File (path);

路径必须使我向上一级到达ProjectWork目录,然后导航到Scenarios\SC01.txt

2个回答

30

根据您的说法,您应该将路径设置为:

../Business/Scenarios/SC01.txt

../ 表示向上一级目录,其余部分是相对于 ProjectWork 的路径。

在 Java 文件中,当你使用一个没有其他参数的相对路径时,该文件将和系统属性 user.dir 匹配,该属性匹配工作目录。


所以 ../ 是指向上一级目录吗? - CodeBlue
1
它给我一个奇怪的结果 - C:\ Users \ ... ProjectWork \ .. \ Business \ Scenarios \ SC101.xlsx - CodeBlue
1
我尝试了file.getAbsolutePath(),它给出了上述结果,绝对路径中仍然包含 .. - CodeBlue
我在使用Windows系统。我注意到你给出了正斜杠。然而,我尝试了"..\Business\Scenarios\SC01.txt",但仍然无法工作。 - CodeBlue
3
你可以在Windows上使用'/',我通常在路径中只使用'/',因为它适用于所有平台。如果你想获取文件的“规范化”路径,可以使用getCanonicalPath()函数。 - Guillaume Polet
是的,getCanonicalPath() 很有帮助。谢谢。 - CodeBlue

5
String path="firstpath" +File.separator +".." +File.separator +"secondpath";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接