2011-12-01 6 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()私は周りに検索したと1つを見つけることができませんでしたか?

ありがとうございました。

答えて

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中間体を使わないようにしています。私の好みは、プレゼンテーションの時間が来るまで、実際のオブジェクトに固執することです。また、 'FilenameFilter'よりも' FileFilter'を使ってディレクトリをフィルタリングしたい場合、 'listFiles()'だけで利用できます。 –

4

まあ、File.list()があります。指定したディレクトリ(つまり、File)の名​​前ですべてのファイルが一覧表示されます。しかし、ディレクトリ名も返されます。それを回避するには、他のディレクトリFile.list(FilenameFilter filter)を使用して、リストからディレクトリを除外することができます。

関連する問題