2011-12-01 135 views
5

我使用這段代碼:使用JFileChooser獲取目錄中的所有文件名?

fileBrowser() { 
     String toReturn = null; 
     JFileChooser Chooser = new JFileChooser(); 
     int choosen = Chooser.showOpenDialog(fileBrowser.this); 
     if (choosen == JFileChooser.APPROVE_OPTION) {   
      System.out.println(Chooser.getCurrentDirectory().toString()+"\\"+Chooser.getSelectedFile().getName()); 
     } 

    } 

獲取所選文件的名稱和位置,這是所有工作的罰款。我想知道是否還有一種方法可以獲取該目錄中的所有文件名?像.getAllFiles()我有搜索周圍,找不到一個?

在此先感謝。

回答

7

當然,使用

File[] filesInDirectory = chooser.getCurrentDirectory().listFiles(); 

然後你可以遍歷數組:

for (File file : filesInDirectory) { 
    System.out.println(file.getName()); 
} 
+2

因爲OP只查找文件名,所以使用'list()'不是更容易嗎? – mre

+0

謝謝,我已經使用list()和上面的建議,正是我想要的,非常感謝! –

+0

@Крысa:如果這是*所有*他想要做的(並取決於他的「文件名」的定義),那麼是的。但通常情況下,您實際上希望在某個時刻與「File」對象進行交互,並試圖引導OP遠離使用String中介。我的選擇是堅持使用真實的物體,直到需要進行演示。另外,如果他確實想要使用'FileFilter'而不是'FilenameFilter'來過濾更清晰的目錄,並且只有'listFiles()'可用。 –

4

嗯,有File.list()。這將從指定目錄中按名稱列出所有文件(即File)。但是這也會返回目錄名稱。爲了規避這種情況,請使用其他File.list(FilenameFilter filter)方法,這將使您能夠從列表中過濾出目錄。

相關問題