2016-08-02 32 views
1

Ich versuche, Dateien aus einem übergeordneten Verzeichnis zu kopieren, die mehrere Unterverzeichnisse enthalten. Die erforderliche Datei Baumstruktur ist unten:Gradle Copy Task: Wie kann ich das Erstellen von Unterverzeichnissen beim Kopieren von Unterverzeichnissen vermeiden?

MachineLogs/XXXXX/*_CORE.txt 

MachineLogs/YYYYY/*_CORE.txt 

ich zum Auswählen und Kopieren erforderlichen Dateien des folgenden Code verwenden:

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

Die obige Snippet die CORE-Dateien korrekt kopiert, aber es ist das Kopieren auch der Verzeichnis, in dem sie vorhanden sind. Ich kann die Unterverzeichnisse nicht benennen, da sie dynamisch nach dem aktuellen Datum erstellt werden.

Antwort

2

Sie können auf folgende Weise versuchen (die Regex ausmacht, ist es zur Zeit nicht übereinstimmen):

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

Here Sie eine Demo finden.