Groovy / jenkins:重命名文件

时间:2018-04-16 15:35:48

标签: file jenkins groovy

我想在jenkins中使用groovy将lastModified()json重命名为filename +“processing”。我没有成功:

JSON_BASE_PATH="/json_repo/"

def file = new File(JSON_BASE_PATH).listFiles()?.sort { it.lastModified() }?.find{it=~/.json$/}
file.renameTo( new File( file.getName() + ".processing") )
print "Filename is : " + file

如何重命名?

2 个答案:

答案 0 :(得分:1)

你的代码实际上已经有了答案,你只是不把它存储在一个变量中! new File( file.getName() + ".processing")

File的实例不是文件系统上的实际条目,它只是一个表示。因此,在执行重命名后,您需要使用代表重命名的文件系统条目的File实例:

JSON_BASE_PATH="/json_repo/"

def file = new File(JSON_BASE_PATH).listFiles()?.sort { it.lastModified() }?.find{it=~/.json$/}
def modifiedFile = new File("${file.getName()}.processing")

/* Check their existence */
println "${file.getName()} exists? ${file.exists()}"
println "${modifiedFile.getName()} exists? ${modifiedFile.exists()}"

/* Rename the file system entry using the File objects */
file.renameTo(modifiedFile)

/* See what we have */
println "Original filename is: ${file}"
println "${file.getName()} exists? ${file.exists()}"
println "Modified Filename is: ${modifiedFile}"
println "${modifiedFile.getName()} exists? ${modifiedFile.exists()}"

答案 1 :(得分:0)

更新:renameTo工作正常。但是文件var不反映重命名名称。如何获得新的重命名?