web-dev-qa-db-ja.com

Java 7ワイルドカード付きのnioリストディレクトリ

ワイルドカードを使用してディレクトリ内のファイルを検索したいのですが。これはJava 6にありますが、コードをJava 7 NIOに変換します:

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

WildcardFileFilterはなく、グロブで少し遊んだ。

15
Jabda

GlobをDirectoryStreamに渡すことができます

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();
15
RealHowTo

ディレクトリストリームglob を次のように使用できます。

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

次に、ファイルパスを反復します。

for (Path entry: stream) {
}
5
olovb