用ant将文件copy到一处,发现src的文件比dest的文件新,于是在另一处dir.new又复制这些新文件.
用伪代码表述类似这样.
<target name="deploy"  >
    <copy todir="${dir.dest}" verbose="true">
     <fileset dir="${dir.src}">
     <include name="**/*.*"/>
                 if(file(dir.src).time > file(dir.dest)){
                     <copy to dir="${dir.new}">
                        <fileset filter="file(dir.src).time > file(dir.dest)" />
                     </copy>
                 }
</fileset>
  </copy>
  </target>我比较少提问,所以很肯给分:)

解决方案 »

  1.   

    可以先在copy之前把todir路径下的相应文件夹给删除了
        <target name="deploy"  depends="clean" > 
          <copy todir="${dir.dest}" verbose="true"> 
          <fileset dir="${dir.src}"> 
           <include name="**/*.*"/> 
                     if(file(dir.src).time > file(dir.dest)){ 
                          <copy to dir="${dir.new}"> 
                             <fileset filter="file(dir.src).time > file(dir.dest)" /> 
                          </copy> 
                     } 
           </fileset> 
          </copy> 
       </target>     <!-- 清理目录 -->
        <target name="clean" description="清理部署目录">
            <delete dir="${dir.dest}" />
            <echo level="info">清理完毕</echo>
        </target>
      

  2.   

    当然不行了,要是先clean的话,copy的时候不就把所有文件都更新,等于各个文件都是新的,完全没有实现想要的效果.
      

  3.   

    发现src的文件比dest的文件新,于是在另一处dir.new又复制这些新文件
    你这是做什么啊,如果你打算发布N次,那么第三次,第四次是直接用${dir.new}还是${dir.new-n}
    如果你想保存原有数据,可以用CVS或者SVN啊
      

  4.   

    我也想实现这种功能,myeclipse中也是这样实现的 帮楼主顶下
      

  5.   

    使用CVS或者SVN都可以实现你要的功能啊
    不仅能保存你以前的文件,还可以有你最新的文件,只是以不同的版本存放
    如果你不想用这样的话,在ANT中自己写的话,我帮不了忙了
    呵呵呵