2017-09-23 75 views
0

我正試圖在目錄中的每個文件夾中找到所有wav,例如「Music」。現在,我的代碼顯示了我選擇的任何文件夾中找到的wav,但是我希望它能夠一次列出在整個目錄中找到的所有wav,而不需要用戶從文件夾到文件夾。我怎樣才能做到這一點?這是我的代碼:如何查找目錄中的所有wavs? 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包,找到文件:

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); 
    } 
} 

如果您需要File!而非你可以簡單的路徑映射到文件:

相關問題