我正在尝试使用gradle从insde文件夹中复制最新的文件夹,但我的脚本是对所有文件夹进行排序并复制最新文件夹中的文件。
下面是脚本。
task test(type: Copy) {
from(new Source("D:\\test").listFiles().sort{ it.lastModified() }.last())
into(new Source("D:\\folder\\output"))
}
我在测试目录中得到的是
test
└──folder1
| test1.txt
└──folder2
| test2.txt
如果说测试目录中的folder2是最新的文件夹,则输出为
test2.txt
但是我期望输出为
folder2
└─ test2.txt
以及其中的内容。
有人可以帮忙吗?
答案 0 :(得分:1)
这应该有效:
task testCopy(type: Copy) {
def latestDirName = file("test").listFiles().sort{ it.lastModified() }.last().name
from file("test") , {
include "$latestDirName/"
}
into(file("folder/output"))
}
说明
在当前的任务实现中,您已编写:
from(new Source("D:\\test").listFiles().sort{ it.lastModified() }.last())
相当于(假设文件夹folder1
是最新的):
from(new Source("D:\\test\\folder1"))
Gradle将使用d:/test/folder1
作为副本的源文件夹:此文件夹的内容(不是文件夹本身)将被复制到目标目录。