没有覆盖Ant UNZIP

时间:2016-10-03 09:52:21

标签: ant unzip

我想解压缩文件,但如果存在某个文件,则不能替换它。

我试过了:

<unzip src="compress.zip" dest="dirTo" overwrite="false">
<patternset>
    <include name="dirFrom/**"/>
</patternset>

“dirFrom”,是压缩文件目录中的名称,我要提取的内容。我使用“覆盖”为假,但它不起作用,它会过度编写。

我有一个目录,这有不同的子目录。我想要其中一个子目录,包括它的文件和子子目录。

2 个答案:

答案 0 :(得分:1)

我找到了怎么做。

1,我将一切提取到辅助目录。 2,我创建一个循环,按文件比较文件,如果该文件存在。 3,如果文件不存在,我将其复制。

def index
  @profiles = Profile.where(nil)
  @profiles = @profiles.fees_to(params[:fees_to]) if params[:fees_to].present?
end

答案 1 :(得分:0)

overwrite设置为false只会阻止覆盖目标文件(如果它比源文件新)。对于更复杂的过滤,您必须使用copy任务和zipfilset,因为它在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>