假设我具有以下文件夹结构:

folder
  -subfolderA
    -module1.mod
      -module1.a
      -module1.b
      -module1.c
    -module2.mod
      -module2.a
      -module2.b
      -module2.c
    -module1.d
  -subfolderB
    -module3.mod
      -module3.a
      -module3.b
      -module3.c
    -module3.d

我只想弄平目录的“子文件夹”层,产生以下内容:
outputFolder
  -module1.mod
    -module1.a
    -module1.b
    -module1.c
  -module2.mod
    -module2.a
    -module2.b
    -module2.c
  -module3.mod
    -module3.a
    -module3.b
    -module3.c
  -module1.d
  -module3.d

我希望这非常简单,它具有:
copy {
    from "folder/*/"
    into "outputFolder"
}

但这没有用。展平一个(或多个)子目录层的最简单方法是什么?

最佳答案

您可能会这样做

copy {
    from 'folder'
    include '*/**/*.*'
    eachFile { FileCopyDetails fcd ->
        int slashIndex = fcd.path.indexOf('/')
        fcd.path = fcd.path.substring(slashIndex+1)
    }
    into "outputFolder"
}

也许
copy {
   from { file('folder').listFiles().findAll { it.directory } }
   into "outputFolder"
}

10-04 14:32