我的程序必須使用駐留在另一個目錄中的某些文件。現在我正在使用絕對路徑來指定文件的位置。但是我知道這些文件的相對位置與我的程序所在的位置相比保持不變。我如何在Java中使用相對路徑來指定這些文件的位置?Java中的相對路徑
例如我的程序駐留在
/home/username/project/src/com/xyz/
..和目標文件在..
/home/username/project/secure/
我的程序必須使用駐留在另一個目錄中的某些文件。現在我正在使用絕對路徑來指定文件的位置。但是我知道這些文件的相對位置與我的程序所在的位置相比保持不變。我如何在Java中使用相對路徑來指定這些文件的位置?Java中的相對路徑
例如我的程序駐留在
/home/username/project/src/com/xyz/
..和目標文件在..
/home/username/project/secure/
您當前的路徑。
currentPath= /home/username/project/src/com/xyz/;
相對路徑 「的/ home /用戶名/項目/安全/」 文件夾是
relativePath= ../../../secure;
在Java中,你可以使用getParentFile()
遍歷了樹。
File currentDir = new File(".");
File parentDir = currentDir.getParentFile();
這將是你不使用系統相關的文件分隔符(../)
例如我的程序駐留在安全的/ home /用戶名/項目/ src目錄/ COM/XYZ/
和目標文件在/ home /用戶名/項目/安全/
知道你的程序的源代碼駐留沒有幫助的地方。你需要知道的是程序執行時的當前目錄。這可能是字面上的任何事情。即使從Eclipse(例如)啓動應用程序,應用程序啓動器也允許您在運行配置中爲子進程指定「當前目錄」。
是否將這些文件添加到您的項目中?如果多個實體讀取/寫入這些文件,則文件系統上的鬆散文件不斷變化,並且指向它們的絕對和相對指針可能不是一個好主意。 – ping
您是否使用從其他目錄運行代碼的IDE? eclipse會從/ home/username/project運行,所以相對路徑將會是./secure –