2012-02-03 57 views
6

在java中,我們如何打開一個單獨的文件夾(例如c :)爲用戶點擊一個按鈕,例如像「在磁盤上定位此文件」或「打開包含文件夾「會在我們下載文件時發生,並且我們想知道它保存在哪裏。目標是節省用戶的時間來打開瀏覽器並在磁盤上找到文件。 感謝(以下圖片是從什麼Firefox沒有一個例子) enter image description herejava:打開文件夾上的按鈕點擊

我得到了答案: 下面是我在Windows 7什麼工作:

 File foler = new File("C:\\"); // path to the directory to be opened 
     Desktop desktop = null; 
     if (Desktop.isDesktopSupported()) { 
     desktop = Desktop.getDesktop(); 
     } 

     try { 
     desktop.open(foler); 
     } catch (IOException e) { 
     } 

由於@AlexS

+0

編輯後的代碼可能會拋出NullPointerException異常,除非您在由'if'語句保護的塊中打開它。 – 2016-10-24 22:24:09

回答

10

我假設你有一個文件。隨着的java.awt.Desktop你可以使用這樣的事情:

public static void openContaiingFolder(File file) { 
    String absoluteFilePath = file.getAbsolutePath(); 
    File folder = new File(absoluteFilePath.substring(0, absoluteFilePath.lastIndexOf(File.separator))); 
    openFolder(folder); 
} 

public static void openFolder(File folder) { 
    if (Desktop.isDesktopSupported()) { 
     Desktop.getDesktop().open(folder); 
    } 
} 

要awrae,如果調用此方法,一個文件,是沒有目錄至少是Windows將嘗試打開的默認程序文件的文件類型。

但我不知道在哪個平臺上支持。