【问题标题】:Groovy delete specific file from the listGroovy 从列表中删除特定文件
【发布时间】:2017-08-25 19:11:21
【问题描述】:

我尝试删除在folderPath 中可以找到的文件。但我只想删除名称为“Jenkins”的那个。
如何在列表中定义只删除该文件?

示例:
在 C:\test\test 中有 3 个文件,要删除名称中有 Jenkins 的文件:

import groovy.io.FileType

String folderPath = "C:\\test" + "\\" + "test"
def list = []
def dir = new File("$folderPath")
dir.eachFileRecurse (FileType.FILES) { file ->
  list << file
}
list.each {
println it.findAll() == "Jenkins" // Just files witch include in list "Jenkins" name
}

感谢您的提示!

【问题讨论】:

    标签: file groovy


    【解决方案1】:

    给你:

    使用以下两种之一:

    import groovy.io.FileType
    
    String folderPath = "C:/test/test"
    new File(folderPath).eachFile (FileType.FILES) { file ->
    //Delete file if file name contains Jenkins
       if (file.name.contains('Jenkins')) file.delete()
    }
    

    下面一个使用FileNameFinder

    String folderPath = "C:/test/test"
    def files = new FileNameFinder().getFileNames(folderPath, '**/*Jenkins*')
    println files
    files.each { new File(it).delete()}
    

    【讨论】:

    • file.path.contains('Jenkins') 很危险,你应该使用file.name.contains('Jenkins')。想象一下,如果folderPath = "C:/Jenkins/test",您将删除循环中的所有文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2014-09-07
    • 2018-05-08
    • 1970-01-01
    • 2014-06-25
    • 2015-04-30
    相关资源
    最近更新 更多