2012年8月16日木曜日

NIO2でglobを使ってファイル抽出

Files.newDirectoryStreamの第二引数にglobを指定する。


「*」を使用すると全ての文字
// すべてのファイルにマッチ
Files.newDirectoryStream(path, "*").each {
  println it.fileName
}

// sから始まるファイルにマッチ
Files.newDirectoryStream(path, "s*").each {
  println it.fileName
}

「?」は任意の1文字
// 拡張子をのぞいたファイル名が3文字
Files.newDirectoryStream(path, "???.groovy").each {
  println it.fileName
}

「[]」を使用すると[]の中で指定した文字
// 小文字から始まるファイル
Files.newDirectoryStream(path, "[a-z]*").each {
  println it.fileName
}

// mとnから始まるファイル
Files.newDirectoryStream(path, "[mn]*").each {
  println it.fileName
}

「{}」は、{}内に指定した値のいずれか(カンマ区切りで指定する。)
// 拡張子がjavaとgroovyのファイル
Files.newDirectoryStream(path, "*.{groovy,java}").each {
  println it.fileName
}