I want to rename my application folder with a time stamp and then unzip a newer version of my app using the same folder name. Using the Ant (move
task), it looks like you can move contents from one folder to another.
Is this the only way I can do this in Ant?
The move task does do what you're after, but the naming is a bit confusing. If you consider your directory is a 'file' in the Java sense - a file being a filesystem handle that can represent, among others a directory or a file in the usual sense - then the move task makes sense.
So the following
<move file="mySourceDirName" tofile="myTargetDirName"/>
means rename/move the directorymySourceDirName
to be instead myTargetDirName
.
The following then
<move file="mySourceDirName" todir="someExistingDir"/>
means to move the directory mySourceDirName
to become a child directory of the existing someExistingDir
directory.
So, in ant the 'file' attribute refers to the target in question, and the 'todir' attribute refers to the directory that is the new parent location for the target file or directory.
Just spelling out the answer already given, which is correct...
<project default="move">
<tstamp/>
<target name="move">
<move file="foo" tofile="foo-${TSTAMP}"/>
</target>
</project>
This moves foo to foo-HHMM.
For example:
$ 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
$
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With