我試圖做一個簡單的程序,其中包含瀏覽本地文件系統的功能。getCanonicalFile和getAbsoluteFile返回當前(項目)目錄而不是預期的目錄
但是,我直接輸入地址時遇到了問題。
public void setWorkingDirectory(File newDir)
{
try
{
//try to eliminate redundancy
this.workingDir = newDir.getCanonicalFile();
}
catch (IOException e)
{
this.workingDir = newDir;
}
}
我需要在屏幕上顯示絕對路徑。所以我用getCanonicalFile()
。除了當我輸入「D:」時,workingDir將被設置爲Eclipse中的當前項目目錄(我認爲它應該是獨立執行時的當前目錄,例如「D:\ EclipseWorkspace \ workspace \ FTPClient」 )但File newDir包含完全相同的路徑(「D:」)(我追蹤它)。
如果我輸入「C:」或「D:\」,那麼一切都很好。我無法在互聯網上找到關於此的任何信息。任何人都可以告訴我這裏發生了什麼,以及如何解決問題?
在此先感謝。
編輯:我在使用Java 6的Windows XP SP3上工作(如果有的話)。
雖然你正在使用Windows,但用正斜槓替換所有反斜槓。「\」`可能會在它之後轉義一個字符,而您不想要。 – darioo 2010-11-30 09:11:31
感謝您的評論。是個好主意。但我認爲在我的情況下沒有必要,因爲路徑不是硬編碼的。 – LLS 2010-11-30 09:17:50
我已經上傳了一個解釋克里斯所說的答案。 – 2010-11-30 09:22:32