2016-08-02 31 views
1

我试图从包含多个子目录的父目录复制文件。所需的文件树结构如下:Gradle Copy任务:如何避免在复制子目录内容时创建子目录

MachineLogs/XXXXX/*_CORE.txt 

MachineLogs/YYYYY/*_CORE.txt 

我使用下面的代码用于选择和复制所需的文件:

from "$localLogsDir/CoreLogsUos1" 
    include '*/*_CORE_*.*' 
    into new File(analysisChainDir, 'CORE') 
    includeEmptyDirs = false 
    exclude { details -> details.file.isDirectory()} 

上面的代码中被正确复制的核心文件,但它也被复制它们所在的目录。我无法命名子目录,因为它们是根据当前日期动态创建的。

回答

2

您可以通过以下方式尝试(心正则表达式,它不会在此刻匹配):

task copyLogs(type: Copy) { 
    from fileTree('logs').filter { it.isFile() && it.name.matches('.*_CORE.*') } 
    into 'dist' 
    includeEmptyDirs = false 
} 

Here你可以找到一个演示。