Java 如何使用Groovy脚本从给定目录获取所有*.sln文件?

Java 如何使用Groovy脚本从给定目录获取所有*.sln文件?,java,jenkins,groovy,groovyshell,jenkins-groovy,Java,Jenkins,Groovy,Groovyshell,Jenkins Groovy,我正在编写Jenkins Groovy脚本文件,以获取给定目录(包括子目录)中的所有.NET项目解决方案文件(*.sln) 首先,我尝试获取给定路径中的目录列表。我使用了下面的代码,工作正常: File folder = new File("D:\\Data"); File[] listOfFiles = folder.listFiles(); for (int i = 0; i < listOfFiles.length; i++) { if (listOfFiles[i].is

我正在编写Jenkins Groovy脚本文件,以获取给定目录(包括子目录)中的所有.NET项目解决方案文件(
*.sln

首先,我尝试获取给定路径中的目录列表。我使用了下面的代码,工作正常:

File folder = new File("D:\\Data");
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
    if (listOfFiles[i].isFile()) {
        println("File " + listOfFiles[i].getName());
        }
    else if (listOfFiles[i].isDirectory()) {
        println("Directory " + listOfFiles[i].getName());
        }
    }
有人能帮我获取给定路径(包括子目录)中的所有解决方案文件吗


提前谢谢

简单的解决方案是使用FileNameFinder,如下所示:

def finder = new FileNameFinder()
def files = finder.getFileNames 'D:\\Data', '**/*.sln'
print files

Simples解决方案是使用FileNameFinder,如下所示:

def finder = new FileNameFinder()
def files = finder.getFileNames 'D:\\Data', '**/*.sln'
print files
这应该可以

import static groovy.io.FileType.*

def startDir = new File("D:\\Data")

startDir.eachFileRecurse(FILES) {
    if (it.name.endsWith('.sln')) {
        println it
    }
}
这应该可以

import static groovy.io.FileType.*

def startDir = new File("D:\\Data")

startDir.eachFileRecurse(FILES) {
    if (it.name.endsWith('.sln')) {
        println it
    }
}

“我收到错误”-哪个错误,什么消息?请用您收到的错误StackTrace更新您的问题。我猜是
org.apache.commons.io.FileUtils
,是吗?如果是,为什么要使用
RegexFileFilter
如果有一个或甚至一个?@Vikrant Kashyap,@Thomas,错误详细信息更新为“我遇到了错误”-哪个错误,什么消息?请用你得到的错误StackTrace更新你的问题。我猜是
org.apache.commons.io.FileUtils
,是吗?如果是,如果存在或甚至存在?@Vikrant Kashyap,@Thomas,错误详细信息已更新,为什么要使用
RegexFileFilter
此选项不会以给定路径打印解决方案文件我已编辑模式-第一个选项仅在根文件夹中搜索,以便搜索必须添加**部分的子文件夹。-我不确定您是否需要在windows上使用\而不是/-我猜不是。这不会在给定路径中打印解决方案文件我已编辑模式-第一个仅在根文件夹中搜索,为了搜索子文件夹,您必须添加**部分。-我不确定你是否需要在windows上使用\而不是/-我猜不是。