Skip to content

Instantly share code, notes, and snippets.

@st63jun
Forked from fumokmm/traverseAndGetFirst.groovy
Created October 11, 2011 00:50
Show Gist options
  • Save st63jun/1277000 to your computer and use it in GitHub Desktop.
Save st63jun/1277000 to your computer and use it in GitHub Desktop.
Groovyでファイルツリーを巡り、最初に見つかったファイルを返却する(見つかったらすぐ返却)
// cf. http://groovy.codehaus.org/groovy-jdk/java/io/File.html#traverse%28java.util.Map,%20groovy.lang.Closure%29
// require Groovy v1.7.1 or upper
// blog. http://d.hatena.ne.jp/fumokmm/20110911/1315709484
def findFirstFile(File rootDir, java.util.regex.Pattern filter) {
File result
rootDir.traverse(
type : groovy.io.FileType.FILES,
nameFilter : filter
) { it -> result = it
groovy.io.FileVisitResult.TERMINATE
}
result
}
// /path/to/dest 内にあるjavaファイルを検索し、最初に見つかった絶対パスを出力
println findFirstFile(new File('/path/to/dest'), ~/.*\.java/).absolutePath
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment