[英]How to get all the *.sln files from a given directory using Groovy script?
我正在編寫一個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());
}
}
2)當修改下面的代碼以列出給定路徑中的所有解決方案文件時,我得到了錯誤:
File folder = new File("D:\\Data");
File[] listOfFiles = folder.listFiles();
Collection files = FileUtils.listFiles(
folder,
new RegexFileFilter("^(*.sln)"),
DirectoryFileFilter.DIRECTORY
);
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
println("File " + files[i].getName());
}
else if (files[i].isDirectory()) {
println("Directory " + files[i].getName());
}
}
錯誤詳情:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: unable to resolve class RegexFileFilter
@ line 5, column 3.
new RegexFileFilter("^(*.sln)"),
^
任何人都可以在此幫助我,以獲取給定路徑(包括子目錄)中的所有解決方案文件
提前致謝!!
簡單的解決方案是像這樣使用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
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.