我们使用groovy脚本编写jenkins管道。有没有办法确定文件夹大小或文件大小。
我们的目标是确定两个zip文件的大小并计算它们之间的差异。
我试了下面的代码,但它不工作。
stage('Calculate Opatch size')
{
def sampleDir = new File('${BuildPathPublishRoot}')
def sampleDirSize = sampleDir.directorySize()
echo sampleDirSize
}
进入以下错误:-
hudson.remoting。ProxyException: groovy.lang.MissingMethodException:没有签名的方法:java.io.File.directorySize()适用于参数类型:()值:[]可能的解决方案:directorySize()org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall (SandboxInterceptor.java: 154)
我是这么做的。获取一个目录中的所有文件并将其长度相加。
请注意,您需要使用引号("),以便字符串插值工作,即"${BuildPathPublishRoot}"放置BuildPathPublishRoot的值变量,而'${BuildPathPublishRoot}'则按字面意思作为目录名。
workspaceSize = directorySize("${BuildPathPublishRoot}")
/** Computes bytes in the directory*/
public def directorySize(directory){
long bytes = 0
directory = (directory?:'').replace('\','/')
directory = (directory =='') ? '' : (directory.endsWith('/') ? directory : "${directory}/")
def files=findFiles(glob: "${directory}*.*")
for (file in files) {
if (!file.isDirectory()){
bytes += file.length
}
}
return bytes
}