Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant zip:如何从路径中删除原始目录_Ant_Zip - Fatal编程技术网

Ant zip:如何从路径中删除原始目录

Ant zip:如何从路径中删除原始目录,ant,zip,Ant,Zip,我有这个结构 component1/Database1/... component1/Code/... component2/Database2/... component2/Code/... etc... 我想创建一个具有以下结构的zip: Database1/... Database2/... etc... 使用此代码: <zip destfile="DB.zip" basedir="BuildPath" includes="*/Database*/**">

我有这个结构

component1/Database1/...
component1/Code/...

component2/Database2/...
component2/Code/...

etc...
我想创建一个具有以下结构的zip:

Database1/...
Database2/...
etc...
使用此代码:

<zip destfile="DB.zip"
     basedir="BuildPath" includes="*/Database*/**">

</zip>
关于如何摆脱第一个目录的建议?
谢谢

为什么不尝试将文件夹结构复制到临时文件夹并尝试压缩它

https://ant.apache.org/manual/Tasks/copydir.html

https://ant.apache.org/manual/Tasks/zip.html

我找到了一种方法,首先将文件复制到临时文件夹中,然后创建zip文件。到目前为止,我还不知道如何将这两个步骤合并到一个调用中,以提高效率:

<copy todir="DBTemp" overwrite="false">
            <fileset dir="${SourceDirectory}">
                <include name="*/Database*/**" />
            </fileset>
            <cutdirsmapper dirs="1"/>
        </copy>

        <zip destfile="DB.zip" basedir="DBTemp"  />


当我发布这个问题时,我肯定不知道的功能是“cutdirsmapper”。这允许我提前创建结构

我也会有同样的问题。我会压缩一个不反映我试图创建的内容的结构。我想如果我能将文件复制到正确的位置,我就可以使用相同的代码来压缩它们。
<copy todir="DBTemp" overwrite="false">
            <fileset dir="${SourceDirectory}">
                <include name="*/Database*/**" />
            </fileset>
            <cutdirsmapper dirs="1"/>
        </copy>

        <zip destfile="DB.zip" basedir="DBTemp"  />