2009-06-24 74 views
10

我想用时间戳重命名我的应用程序文件夹,然后使用相同的文件夹名称解压我的应用程序的较新版本。使用Ant (move task),看起来您可以将内容从一个文件夹移动到另一个文件夹。如何使用Ant重命名文件夹?

这是我能在蚂蚁做到这一点的唯一途径?

回答

0

我认为此举任务是你想要的。有没有理由不想使用它?

这听起来像你提出移动文件夹中,你的build.xml文件的生活。是对的吗?如果是这样,我想蚂蚁可能不会太高兴。

+1

现在在我的build.xml中我有它来删除该文件夹,然后解压zip文件,该文件会自动创建一个具有相同文件夹名称的新文件夹。现在,而不是删除该文件夹,我想要重新命名一个时间戳附加到文件夹名称。 – JLau 2009-06-25 12:51:44

4

就拼出已经给出了答案,这是正确的...

<project default="move"> 
    <tstamp/> 
    <target name="move"> 
     <move file="foo" tofile="foo-${TSTAMP}"/> 
    </target> 
</project> 

这会将foo到foo-HHMM。

例如:

$ find . 
. 
./build.xml 
./foo 
./foo/bar.txt 
$ 
$ ant 
Buildfile: C:\tmp\ant\build.xml 

move: 

BUILD SUCCESSFUL 
Total time: 0 seconds 
$ 
$ find . 
. 
./build.xml 
./foo-1145 
./foo-1145/bar.txt 
$ 
+0

我将tofile改为todir,它工作正常。谢谢。 – JLau 2009-07-01 18:54:52

+0

我试过tofile和todir,都没有工作。它抱怨'foo'找不到 - 它存在,但是是一个目录。 – 2011-10-13 10:35:46

18

此举任务并做你以后,但命名比较混乱。如果你认为你的目录是Java文件中的'文件' - 一个文件是一个文件系统句柄,可以表示一个通常意义上的目录或文件,然后这个移动任务是有意义的。

所以下面

<move file="mySourceDirName" tofile="myTargetDirName"/> 

方式重命名/移动目录mySourceDirName是不是myTargetDirName

下然后

<move file="mySourceDirName" todir="someExistingDir"/> 

意味着移动目录mySourceDirName成为现有someExistingDir目录的子目录。

所以,在蚂蚁的“文件”属性指的是有问题的目标,和“todir”属性指的是目标文件或目录的新的父位置的目录。

1

如果要重命名的文件夹,您可以使用移动标签,但它没有使用它一个神秘的方式。由于@phasmal说你可以使用移动,但它会移动所需文件夹内的文件夹。如果您只想重命名,请尝试以下操作。

<move todir="newname"> 
    <fileset dir="directory tobe renamed "/> 
</move>