Ant UNZIP 没有覆盖
No overwrite on Ant UNZIP
我想解压缩一个文件,但是如果某个文件存在,则不能替换它。
我试过这个:
<unzip src="compress.zip" dest="dirTo" overwrite="false">
<patternset>
<include name="dirFrom/**"/>
</patternset>
"dirFrom",是压缩文件中我要解压的目录的名称。我使用 "overwrite" 来设置错误,但它不起作用,它会覆盖。
我有一个目录,它有不同的子目录。我想要那些子目录之一,以及它的文件和子目录。
将overwrite
设置为false只会防止覆盖比源文件新的目标文件。对于更复杂的过滤,您必须使用带有 zipfilset
的 copy
任务,如 ant 文档中所述(请参阅 unzip 任务——在 Related tasks
部分)。例如,如果目标目录中已经存在以下代码,则不应从 zip 文件中提取文件(考虑源目录布局):
<copy todir="${target.dir}">
<zipfileset src="${zip.file}">
<patternset>
<include name="**/*.*"/>
</patternset>
<present targetdir="${target.dir}" present="srconly"/>
</zipfileset>
</copy>
我找到了方法。
1st,我把所有的东西都解压到auxiliary目录。
第二,我做了一个循环,逐个文件比较文件,如果该文件存在的话。
3、如果文件不存在,我复制它。
<unzip src="compressFile.zip" dest="dirAux">
<patternset>
<include name="mySubDir/**"/>
</patternset>
</unzip>
<fileset id="fileset1" dir="dirAux/mySubDir" />
<property name="newContentMySubDir" refid="fileset1"/>
<for param="nameFile" list="${newContentMySubDir}" delimiter=";">
<sequential>
<if>
<not><available file="${finalDir}/mySubDir/@{nameFile}" type="file"/></not>
<then>
<copy tofile="${finalDir}/mySubDir/@{nameFile}" file="dirAux/mySubDir/@{nameFile}"/>
</then>
</if>
</sequential>
</for>
我想解压缩一个文件,但是如果某个文件存在,则不能替换它。
我试过这个:
<unzip src="compress.zip" dest="dirTo" overwrite="false">
<patternset>
<include name="dirFrom/**"/>
</patternset>
"dirFrom",是压缩文件中我要解压的目录的名称。我使用 "overwrite" 来设置错误,但它不起作用,它会覆盖。
我有一个目录,它有不同的子目录。我想要那些子目录之一,以及它的文件和子目录。
将overwrite
设置为false只会防止覆盖比源文件新的目标文件。对于更复杂的过滤,您必须使用带有 zipfilset
的 copy
任务,如 ant 文档中所述(请参阅 unzip 任务——在 Related tasks
部分)。例如,如果目标目录中已经存在以下代码,则不应从 zip 文件中提取文件(考虑源目录布局):
<copy todir="${target.dir}">
<zipfileset src="${zip.file}">
<patternset>
<include name="**/*.*"/>
</patternset>
<present targetdir="${target.dir}" present="srconly"/>
</zipfileset>
</copy>
我找到了方法。
1st,我把所有的东西都解压到auxiliary目录。 第二,我做了一个循环,逐个文件比较文件,如果该文件存在的话。 3、如果文件不存在,我复制它。
<unzip src="compressFile.zip" dest="dirAux">
<patternset>
<include name="mySubDir/**"/>
</patternset>
</unzip>
<fileset id="fileset1" dir="dirAux/mySubDir" />
<property name="newContentMySubDir" refid="fileset1"/>
<for param="nameFile" list="${newContentMySubDir}" delimiter=";">
<sequential>
<if>
<not><available file="${finalDir}/mySubDir/@{nameFile}" type="file"/></not>
<then>
<copy tofile="${finalDir}/mySubDir/@{nameFile}" file="dirAux/mySubDir/@{nameFile}"/>
</then>
</if>
</sequential>
</for>