ANT任务以递归方式移动和重命名文件和文件夹

时间:2010-02-03 09:07:44

标签: java ant move fileset

我有一个像这样的文件夹结构:

/PROJECT/PROJECT.html

/PROJECT/PROJECT_readme.txt

/PROJECT/PROJECT.css

/PROJECT/PROJECT.js

/PROJECT/abc_PROJECT_def.txt

/PROJECT/something.js

/PROJECT/other.txt

/PROJECT/somefolder/PROJECT_other.txt

我想使用ANT复制完整目录,并将文件或文件夹中的PROJECT字符串更改为指定值,例如mysuperproject,所以结果文件夹结构是这样的:

/mysuperproject/mysuperproject.html

/mysuperproject/mysuperproject_readme.txt

/mysuperproject/mysuperproject.css

/mysuperproject/mysuperproject.js

/mysuperproject/abc_mysuperproject_def.txt

/mysuperproject/something.js

/mysuperproject/other.txt

/mysuperproject/somefolder/mysuperproject_other.txt

在ANT中有一种简单的方法吗?

2 个答案:

答案 0 :(得分:4)

The Move task应该适合你。仔细阅读链接的文档。

这是一项核心任务,因此您可以在不下载任何配置的情况下使用它。

答案 1 :(得分:0)

我有类似的要求。这就是我所做的:

  <target name="move-and-rename" description="Move and Rename">
        <copy todir="${toDir}" verbose="true" overwrite="true">
            <fileset dir="${fromDir}" includes="**" />
            <regexpmapper from="(.*)${fromName}(.*)" to="\1${toName}\2"/>
         </copy>             
  </target>

在命令行上调用

ant move-and-rename -DfromName=project -DtoName=xxxproject -DfromDir=. -DtoDir=proj2

希望它可以帮助别人。