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