2009-06-24 76 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>