我的程序必须使用驻留在另一个目录中的某些文件。现在我使用绝对路径来指定文件的位置。但我知道,与我的程序所在的位置相比,这些文件的相对位置将保持不变。我如何在Java中使用相对路径来指定这些文件的位置?
例如我的程序驻留在
中/home/username/project/src/com/xyz/
..且目标文件位于..
/home/username/project/secure/
答案 0 :(得分:3)
例如我的程序驻留在/ home / username / project / src / com / xyz /
,目标文件位于/ home / username / project / secure /
了解程序源代码所在的位置无济于事。您需要知道的是程序执行时的当前目录。这可能是任何事情。即使您从(例如)Eclipse启动应用程序,应用程序启动器也允许您在运行配置中为子进程指定“当前目录”。
答案 1 :(得分:2)
您当前的路径。
currentPath= /home/username/project/src/com/xyz/;
“/ home / username / project / secure /”文件夹的相对路径是
relativePath= ../../../secure;
答案 2 :(得分:0)
在Java中,您可以使用getParentFile()
遍历树。
File currentDir = new File(".");
File parentDir = currentDir.getParentFile();
这是安全的,因为您没有使用系统相关的文件分隔符(../)