查找以x(Groovy)开头的目录

时间:2019-04-16 15:54:10

标签: groovy

使用groovy,我想找到一个以XXXX字符开头的目录。我是个新手,不胜感激。

给出目录Y,仅在Y内搜索,我需要找到以XXXX开头的目录。它只能是一个与模式匹配的目录。

这是在詹金斯中使用的。

我尝试了以下方法:

def release_dir_path = "C:\\Dir\\ReleaseDir"
def pattern = "DWH-4072"
def release_path = ""

new File(release_dir_path).eachDir { File dir -> if 
    (dir.name.startsWith(pattern) { release_path = dir })}
println release_path

想法是在Y中找到以XXXX开头的目录,并将该值放入release_path。

1 个答案:

答案 0 :(得分:0)

您尚未指定:

  1. 应从哪个目录开始搜索
  2. 如何进行递归或非递归搜索

我假设您要在/tmp中进行非递归搜索。

// stores each matching directory as a File object
List<File> matchingDirs = []

new File('/tmp').eachDir { File dir ->    
   if (dir.name.startsWith('XXXX')) {
       matchingDirs << dir
   }
}

// after updating your question to explain that there should be just 
// one matching dir and you want to capture it in a variable and print it
if (matchingDirs) {
  def matchingDir = matchingDirs[0]
  println matchingDir
}

如果要递归搜索,只需将eachDir替换为eachDirRecurse