2016-06-21 5 views
0

Ich habe die folgende Ordnerstruktur (es gibt eine willkürliche Anzahl von Kind-Ordner und die Namen sind nicht bekannt). Ich habe nur den Pfad zum übergeordneten Ordner verfügbar.Gradle Scripting: Kopieren Sie den Inhalt der untergeordneten Ordner und zusätzlichen Ordner an neue Standorte

Parent 
    | Child_folder_0 
    | Child_folder_N 

sowie einen separaten Ordner namens contentFolder

Ich versuche, die jedes Kind Ordner (und es ist Inhalt) in einen anderen Ort als auch kopieren Sie den Inhalt der contentFolder in jedes Kind-Ordner des neuen zu kopieren Lage.

Danke!

Antwort

1

Der folgende Code:

def parentFolder = 'Parent' 
def contentFolder = 'contentFolder' 
def destDir  = 'destDir' 

task copyChildFilesFromParent(type: Copy) { 
    from(parentFolder) { 
     include '**/*' 
    } 
    into destDir 
} 

task copyContentFilesIntoChildren() { 
    (parentFolder as File).eachDir { childDir -> 
     copy { 
      from(contentFolder) { 
       include '**/*' 
      } 
      into "$destDir/${childDir.name}" 
     } 
    } 
} 

task copyFiles(dependsOn: ['copyChildFilesFromParent', 'copyContentFilesIntoChildren']) 

Wird die folgende Verzeichnisstruktur verwandeln:

├── build.gradle 
├── contentFolder 
│   ├── content.txt 
│   └── data.dat 
└── Parent 
    ├── Child_folder_0 
    │   ├── 0.dat 
    │   └── data.0 
    ├── Child_folder_1 
    │   ├── 1.dat 
    │   └── data.1 
    ├── Child_folder_2 
    │   ├── 2.dat 
    │   └── data.2 
    └── Child_folder_N 
     ├── data.N 
     └── N.dat 

in

├── destDir 
│   ├── Child_folder_0 
│   │   ├── 0.dat 
│   │   ├── content.txt 
│   │   ├── data.0 
│   │   └── data.dat 
│   ├── Child_folder_1 
│   │   ├── 1.dat 
│   │   ├── content.txt 
│   │   ├── data.1 
│   │   └── data.dat 
│   ├── Child_folder_2 
│   │   ├── 2.dat 
│   │   ├── content.txt 
│   │   ├── data.2 
│   │   └── data.dat 
│   └── Child_folder_N 
│    ├── content.txt 
│    ├── data.dat 
│    ├── data.N 
│    └── N.dat