2012-01-09 7 views
2

私は、次のファイル構造を有する:宛先ディレクトリの既存ファイルを削除せずにAntでディレクトリをコピーするにはどうすればよいですか?

  • は私が
    • のfolder1
      • somefile1
      • somefile2

をFolderToBeCopiedコピーがすでにファイルが含まれていた場所にFolderToBeCopied:

  • DestinationFolder
    • のfolder1
      • anotherfile1
      • anotherfile2

私はFOLを使用してコピーします私のAntビルドスクリプトのlowing:目的地でのfolder1する

<copy overwrite="true" todir="DestinationFolder"> 
      <fileset dir="FolderToBeCopied" includes="**"> 
      </fileset> 
     </copy> 

しかし、私はビルドスクリプトを実行し、それがコピーしたファイルのsomefile1とsomefile2が、(すなわちfolder1の中で、既にファイルが削除されます。 anotherfile1、anotherfile2)。すでに宛先フォルダにあるファイルを削除しないようにする方法はありますか?

答えて

1

はい:delete要素をビルドスクリプトで探し、DestinationFolderを削除して削除します。

copy doesn't deleteoverwriteは、「ターゲットがソースよりも古くてもコピー」を意味します。

+1

別の可能性がdestinationFolderが最初の場所ではなかったです。そうすれば、削除されたと思うことができます。 –

0

先フォルダ内の既存のファイルの削除を防ぐために、あなたはファイル名にタイムスタンプを付加し、バックアップを作ることができるが:

<project name="demoSO" basedir="."> 

    <tstamp> 
    <format property="touch.time" pattern="yyMMddHHmmssSSS"/> 
    </tstamp> 

    <target name="copyMyFiles"> 
    <copy todir="DestinationFolder" includeemptydirs="false"> 
     <fileset dir="FolderToBeCopied"> 
     </fileset> 
     <mapper type="glob" from="*" to="*-${touch.time}"/> 
    </copy> 
    </target> 

</project> 
関連する問題