2017-09-23 14 views
0

"Music"のように、ディレクトリにあるすべてのフォルダ内のすべてのwavを検索しようとしています。今、私のコードは、私が選択したフォルダにあるwavを表示しますが、ユーザがフォルダからフォルダに移動することなく、ディレクトリ全体で見つかったすべてのwavを一度に一覧表示します。どうやってやるの?ここに私のコード:ディレクトリ内のすべてのwavを見つける方法は? JavaFX

FileChooser chooseFile = new FileChooser(); 
FileChooser.ExtensionFilter filter = new FileChooser.ExtensionFilter("Choose a file (*.wav)", "*.wav"); 
    chooseFile.getExtensionFilters().add(filter); 
    File file = chooseFile.showOpenDialog(null); 
    directory = file.toURI().toString(); 

答えて

0

最初にDirectoryChooserを使用してディレクトリを選択する必要があります。あなたは、ファイルを見つけるために、NIOパッケージを使用することができます:あなたはFile秒が必要な場合は

DirectoryChooser chooser = new DirectoryChooser(); 
File directory = chooser.showDialog(null); 
Path[] wavs = findWavs(directory); 
private static Path[] findWavs(File directory) throws IOException { 
    Path dir = directory.toPath(); 
    try (Stream<Path> stream = Files.find(dir, Integer.MAX_VALUE, (path, attributes) -> path.getFileName().toString().endsWith(".wav"))) { 
     return stream.toArray(Path[]::new); 
    } 
} 

代わりにあなたは、単にファイルへのパスをマップすることができます:

関連する問題