使用ANT从嵌套的zip文件中解压缩特定的zip文件



我有一个zip文件,例如"test.zip",其中又包含两个zip文件——a.zip和B.zip。我只想提取a.zip的内容,不动B.zip。

我确实尝试了下面的代码片段,但还没有找到运气-

<unzip src="test.zip" dest="test_dir">
<fileset dir="test_dir">
<include name="A.zip"/>
<exclude name="B.zip"/>
</fileset>
</unzip>

请说明如何实现这一目标。

从解压缩任务的文档:

Unjar/Unwar/Unzip只支持基于文件系统的资源集合,包括文件集、文件列表、路径和文件。

这意味着您必须在文件系统的某个位置拥有a.zip的物理副本。

所以,除了分两步做之外,真的别无选择:

<tempfile property="a" suffix=".zip"/>
<copy tofile="${a}">
<zipentry zipfile="test.zip" name="A.zip"/>
</copy>
<unzip src="${a}" dest="test_dir"/>
<delete file="${a}"/>

模式集 用于选择要从存档中提取的文件。如果未使用图案集,则提取所有文件。

FileSets 可用于选择要执行取消存档的存档文件。

试试这个:

<unzip src="test.zip" dest="test_dir">
<patternset>
<include name="A.zip"/>
</patternset>
<fileset dir="test_dir">
<include name="A.zip"/>
</fileset>
</unzip>

相关内容

  • 没有找到相关文章

最新更新