重命名Vs移动Ant任务



实际上我使用<move> cmd重命名一个文件夹而不是<rename> cmd。但在我的情况下,我要移动48746个文件,所以需要1个小时左右。请告诉我一个合适的方法,以最优的方式重命名该文件夹。提前谢谢。

<target name="rename_folder_jet" depends="Upload_on_ftp">
    <move todir="${build.dir}_jet_${ver_number}">
        <fileset dir="${build.dir}">
            <include name="**/*.*"/>
        </fileset>
    </move>
</target>

尝试只移动/重命名目录,而不是其所有内容。这样的:

<target name="rename_folder_jet" depends="Upload_on_ftp">
    <move file="${build.dir}" todir="${build.dir}_jet_${ver_number}"/>
</target>

并确保在开始之前目标目录不存在。

我尝试了以下构建文件:

<project default="rename_folder_jet">
  <property name="build.dir" value="build"/>
  <property name="ver_number" value="0.3"/>
  <target name="setup">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${build.dir}/foo"/>
    <mkdir dir="${build.dir}/bar"/>
  </target>
  <target name="teardown">
    <delete dir="${build.dir}_jet_${ver_number}"/>
  </target>
  <target name="rename_folder_jet">
    <move file="${build.dir}" todir="${build.dir}_jet_${ver_number}"/>
  </target>
</project>

用上面的代码在调试中执行Ant (Ant -d)很有趣。

案例1:

ant teardown
ant setup
ant -d

在此例中,move/rename命令的目标目录不存在。Ant的调试输出显示:

 [move] Attempting to rename dir: C:Userssudocodetmpantbuild to C:Userssudocodetmpantbuild_jet_0.3build

案例2:

ant setup
ant
ant setup
ant -d

在这种情况下,第二次执行时目标目录已经存在。Ant的调试输出显示:

     [move] Attempting to rename dir: C:Userssudocodetmpantbuild to C:Userssudocodetmpantbuild_jet_0.3build
fileset: Setup scanner in dir C:Userssudocodetmpantbuild with patternSet{ includes: [] excludes: [] }
     [move] Deleting directory C:Userssudocodetmpantbuildfoo
     [move] Deleting directory C:Userssudocodetmpantbuildbar
     [move] Deleting directory C:Userssudocodetmpantbuild
因此,如果目标目录不存在,Ant将对目录进行重命名。但是如果目标目录存在,它会将复制到目录中,并从源目录中删除。

相关内容

  • 没有找到相关文章

最新更新