我有这个结构
component1/Database1/...
component1/Code/...
component2/Database2/...
component2/Code/...
etc...
我想创建一个具有以下结构的zip:
Database1/...
Database2/...
etc...
使用此代码:
<zip destfile="DB.zip"
basedir="BuildPath" includes="*/Database*/**">
</zip>
它创建:
component1/Database1/...
component2/Database2/...
关于如何摆脱第一个目录的建议? 感谢
答案 0 :(得分:2)
我找到了一种方法来完成这项工作,首先将文件复制到临时文件夹,然后创建zip文件。到目前为止,我还无法弄清楚如何将两个步骤合并为一个调用以提高效率:
<copy todir="DBTemp" overwrite="false">
<fileset dir="${SourceDirectory}">
<include name="*/Database*/**" />
</fileset>
<cutdirsmapper dirs="1"/>
</copy>
<zip destfile="DB.zip" basedir="DBTemp" />
当我发布这个问题时,我绝对不知道的功能是“cutdirsmapper”。这允许我提前创建结构。
答案 1 :(得分:1)
为什么不尝试将文件夹结构复制到临时文件夹并尝试压缩它?
https://ant.apache.org/manual/Tasks/copydir.html
https://ant.apache.org/manual/Tasks/zip.html