【发布时间】:2010-11-05 16:29:54
【问题描述】:
我想用时间戳重命名我的应用程序文件夹,然后使用相同的文件夹名称解压缩我的应用程序的较新版本。使用 Ant (move task),您似乎可以将内容从一个文件夹移动到另一个文件夹。
这是我在 Ant 中可以做到这一点的唯一方法吗?
【问题讨论】:
标签: ant
我想用时间戳重命名我的应用程序文件夹,然后使用相同的文件夹名称解压缩我的应用程序的较新版本。使用 Ant (move task),您似乎可以将内容从一个文件夹移动到另一个文件夹。
这是我在 Ant 中可以做到这一点的唯一方法吗?
【问题讨论】:
标签: ant
如果你想重命名文件夹,你可以使用移动标签,但它有一种神秘的使用方式。正如@phasmal 所说,您可以使用 move 但它将文件夹移动到所需文件夹内。如果您只想重命名,请尝试以下操作。
<move todir="newname">
<fileset dir="directory tobe renamed "/>
</move>
【讨论】:
移动任务确实完成了您所追求的工作,但命名有点混乱。如果您认为您的目录是 Java 意义上的“文件”——文件是文件系统句柄,可以表示通常意义上的目录或文件等——那么移动任务是有意义的。
所以下面
<move file="mySourceDirName" tofile="myTargetDirName"/>
表示将目录mySourceDirName 重命名/移动为myTargetDirName。
那么
<move file="mySourceDirName" todir="someExistingDir"/>
表示移动目录mySourceDirName成为现有someExistingDir目录的子目录。
因此,在 ant 中,'file' 属性指的是有问题的目标,而 'todir' 属性指的是作为目标文件或目录的新父位置的目录。
【讨论】:
只是拼出已经给出的答案,这是正确的......
<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
$
【讨论】:
我认为移动任务是你想要的。你有什么不想使用它的原因吗?
听起来您提议移动 build.xml 文件所在的文件夹。那正确吗?如果是这样,我想蚂蚁可能不会太高兴了吧。
【讨论】: