0

最初の関係を維持しながら、異なる場所からのファイルのコレクションを 1 つの zip に圧縮する必要があります。たとえば、次のフォルダー構造から a1 と b2 のみが必要です

Top -- A -- a1
         -- a2
    -- B -- b1
            b2

zipファイルを次のようにしたい:

Top -- A -- a1
    -- B -- b2

AntBuilder を使用してそれを行うにはどうすればよいですか? 私はもう試した:

def deploymentFiles = [ "$HOME/Songs/a.tsv", "$HOME/Songs/b.tsv", ]

def ant = new AntBuilder()

def zipFile = 新しいファイル("deployment_zipFile.zip")

ant.zip( destFile: "${zipFile.getAbsolutePath()}" ) { fileset( dir: "$HOME" ) { deploymentFiles.each {f -> インクルード: deploymentFiles.join(",") } } }

しかし、これはHOMEフォルダー全体を圧縮しただけです。

4

1 に答える 1

1

次のようなディレクトリ構造があるとします。

-- home
   |-- Songs
   |   |-- A
       |   |-- a1.tsv
       |   \-- a2.tsv
       |-- B
           |-- b1.tsv
           \-- b2.tsv

次に、このコード:

def HOME = 'home'
def deploymentFiles = [ 'Songs/A/a1.tsv', 'Songs/B/b1.tsv' ]
def zipFile = new File("deployment_zipFile.zip")
new AntBuilder().zip( basedir: HOME,
                      destFile: zipFile.absolutePath,
                      includes: deploymentFiles.join( ' ' ) )

解凍時に以下を含む zip ファイルを作成します。

unzip ../deployment_zipFile.zip 
Archive:  ../deployment_zipFile.zip
   creating: Songs/
   creating: Songs/A/
  inflating: Songs/A/a1.tsv          
   creating: Songs/B/
  inflating: Songs/B/b1.tsv  
于 2013-02-20T11:49:22.523 に答える