计算Jenkins管道中的文件夹大小或文件大小



我们使用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
}

最新更新