2009-06-17 23 views
9

すべてをターゲットディレクトリから移動する最も簡単な方法は何ですか?別のディレクトリからディレクトリを移動するためのAntターゲット

私はこれを持っていますbasedir/parentdir/<subdir>。私は多くの異なる<subdir>を持っています。私はそれらをparentdirと同じレベルに移動して、それがbasedir/<subdir>になるようにする必要があります。現在、各<subdir>には、空のサブディレクトリを含む多くの他のサブディレクトリとファイルの深いツリーが含まれています。

私は次のことを試してみた:

<move todir="basedir"> 
    <fileset dir="parentdir"> 
     <include name="**/*.*" /> 
    </fileset> 
</move> 

空のディレクトリに移動するために失敗したことを - 移動後に意味を、すべての<subdir>は彼らの空のサブディレクトリを表示されません。デフォルトでは、おそらくコピーemptysubdirectoriesを「動かす」、私は、次の次を試してみました:

<move todir="basedir"> 
    <fileset dir="parentdir"> 
     <include name="**/*" /> 
     <include name="**/*.*" /> 
    </fileset> 
</move> 

私は空のサブディレクトリを移動するために管理しなかったが、奇妙なことは、すべての<subdir>のすべての即時のサブディレクトリがbasedirにコピーされるということです。 <subdir>はすべてsrc,test、およびbuildです。これらは今やbasedirに入っており、元の移動は<subdir>になっています。

私は肯定的です。私は間違ったことをしていますが、私は何がわかりません。私は物事に間違った方法で近づいていますか?

+0

を試してみてください? –

+0

あなたはおそらくそれらを一時的な場所に移動する必要があります。 –

+0

@John:いいえ、私はdir構造を保持したいと思います。 @mike:実際には、 "parentdir" _は私の一時的な場所です:D – aberrant80

答えて

10

は、あなたが、あなたは真=平らに使用していないこの

<project name="moveproject" basedir="." default="moveDirs"> 
<target name="moveDirs"> 
    <move todir="${basedir}" includeEmptyDirs="yes" verbose="true"> 
     <fileset dir="parentdir" > 
      <include name="**/*" /> 
     </fileset> 
    </move> 
</target> 
</project> 
+0

includeEmptyDirsはデフォルトではtrueに設定されているため、設定しませんでした。また、Ant docの例では、yes/no ... strangeの代わりにincludeemptydirs = "false"を使用しています。 **/*は正しい。私は古い目標を廃止し、そのほとんどを書き直しました。親父を築いた私の元の目標には問題があったと思う。あなたをコピーして、物事は意図したとおりに働いています。ありがとう! – aberrant80

+0

parentdirの名前がわからないとどうなりますか? –

関連する問題