2015-05-06 20 views
9

Joker kullanarak bir dizindeki bir dosyayı bulmak istiyorum. Ben Java 6'da bu var ama Java 7 NIO için kod dönüştürmek istiyorum:Java 7 niçin listesi wildcard ile ara

File dir = new File(mydir); 
FileFilter fileFilter = new WildcardFileFilter(identifier+".*"); 
File[] files = dir.listFiles(fileFilter); 

hiçbir WildcardFileFilter yoktur ve ben Neználkovo ile biraz etrafına oynadım.

DirectoryStream<Path> stream = Files.newDirectoryStream(dir, identifier+".*") 

ve sonra yineleme dosya yolları:

+1

var bir DirectoryStream için bir topak geçebilir [Dosyalar Bulma] 'yı okuyorsunuz (https://docs.oracle.com/javase/tutorial/essential/io/find.html)? –

+0

Bkz. Http://stackoverflow.com/questions/20443793/allow-wildcards-to-search-for-subdirectories-from-a-parent-directory. Bunun için doğru kod oluştururken size yardımcı olmalıdır. – wsl

cevap

9

Sen

import java.nio.file.DirectoryStream; 
import java.nio.file.FileSystems; 
import java.nio.file.Files; 
import java.nio.file.Path; 
... 

Path dir = FileSystems.getDefault().getPath(filePath); 
DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.{txt,doc,pdf,ppt}"); 
for (Path path : stream) { 
    System.out.println(path.getFileName()); 
} 
stream.close(); 
+1

Bence hayırlara ihtiyacınız var mı? (Yol yolu: (Yol) akışı) için { – Jabda

+1

@Jabda, haklısınız. Bu şimdi düzeltildi (DIrectoryStream ... eklendi). – RealHowTo