我想将所有目录复制到另一个目录,但我必须重命名一个文件。 我正在尝试这个:
<copy todir="destDir" enablemultiplemappings="true">
<fileset dir="sourceDir"/>
<compositemapper>
<identitymapper />
<globmapper from="oldFileName" to="newFileName"/>
</compositemapper>
</copy>
但是这个任务会复制所有文件,而不是复制重命名的文件。在destDir目录中,我有两个文件: destDir \ oldFileName 和 destDir \ newFileName 。但我只需要 destDir \ newFileName 。有人可以帮我这个吗?
编辑: 我需要将sourceDir中的所有文件复制到destDir,并仅重命名名为“oldFileName”的文件。
答案 0 :(得分:1)
设置enablemultiplemappings="false"
,并交换地图制作器的顺序:
<copy todir="destDir">
<fileset dir="sourceDir" />
<compositemapper>
<globmapper from="oldFileName" to="newFileName" />
<identitymapper />
</compositemapper>
</copy>
如果没有启用多个映射,则第一个生成文件名的映射“获胜”。因此对于需要重命名的文件,将应用glob。对于所有其他文件,身份映射器将按原样命名。