2011-12-02 61 views
0
final JFileChooser fc = new JFileChooser(); 
int returnVal = fc.showOpenDialog(this); 

if (returnVal == JFileChooser.APPROVE_OPTION) { 
    String fileName = fc.getSelectedFile().getName(); 
    String path = (new File(fileName)).getAbsolutePath(); 
} 

我得到的絕對路徑是項目目錄和文件名的拼接JFileChooser返回錯誤的文件名?

回答

2

JFileChooser.getSelectedFile()返回File對象。

爲什麼要獲取文件名並再次實例化新的File對象?

你可以嘗試:

fc.getSelectedFile().getAbsolutePath(); 
2

這就是getAbsolutePath()那樣 - 得到的完整路徑,包括驅動器盤符(如果你在Windows上),等什麼是你想搞定,只是文件名?

後您初始化File對象,你可以從得到的只是文件名,或者您可以使用JFileChooser.getSelectedFile()

如果您收到/path/to/filefilename但你期待/path/to/file/filename那麼你可以添加一個額外的斜槓適當的路徑。

2

當然。因爲您使用返回的文件名創建了新文件new File(fileName),這意味着相對路徑。改爲使用fc.getSelectedFile().getPath()fc.getSelectedFile().getAbsolutePath()

相關問題