实际上我使用<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>
Run Code Online (Sandbox Code Playgroud)
尝试仅移动/重命名目录,而不是其所有内容.像这样:
<target name="rename_folder_jet" depends="Upload_on_ftp">
<move file="${build.dir}" todir="${build.dir}_jet_${ver_number}"/>
</target>
Run Code Online (Sandbox Code Playgroud)
并确保在开始之前目标目录不存在.
我试验了以下构建文件:
<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>
Run Code Online (Sandbox Code Playgroud)
使用上面的命令在debug(ant -d)中执行Ant很有意思.
情况1:
ant teardown
ant setup
ant -d
Run Code Online (Sandbox Code Playgroud)
在这种情况下,移动/重命名的目标目录不存在.Ant的调试输出显示:
[move] Attempting to rename dir: C:\Users\sudocode\tmp\ant\build to C:\Users\sudocode\tmp\ant\build_jet_0.3\build
Run Code Online (Sandbox Code Playgroud)
案例2:
ant setup
ant
ant setup
ant -d
Run Code Online (Sandbox Code Playgroud)
在这种情况下,目标目录已存在于第二次执行中.Ant的调试输出显示:
[move] Attempting to rename dir: C:\Users\sudocode\tmp\ant\build to C:\Users\sudocode\tmp\ant\build_jet_0.3\build
fileset: Setup scanner in dir C:\Users\sudocode\tmp\ant\build with patternSet{ includes: [] excludes: [] }
[move] Deleting directory C:\Users\sudocode\tmp\ant\build\foo
[move] Deleting directory C:\Users\sudocode\tmp\ant\build\bar
[move] Deleting directory C:\Users\sudocode\tmp\ant\build
Run Code Online (Sandbox Code Playgroud)
因此,如果目标目录尚不存在,Ant似乎会对目录进行重命名.但是如果目标目录存在,它会复制到目录中并从源目录中删除.
| 归档时间: |
|
| 查看次数: |
6729 次 |
| 最近记录: |