2016-08-02 49 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你可以找到一個演示。