ファイルやディレクトリーを同期(コピー)するコアタスク。
(org.apache.tools.ant.taskdefs.Sync extends
Task)
copyタスクとの違いは、転送元にファイルが無かった場合、転送先のファイルが削除されること。
| 属性 | 説明 |
|---|---|
| todir="ディレクトリ名" | コピー先のディレクトリ名。 |
| overwrite="true" | trueにすると、常にコピーする。 falseにすると、コピー先にファイルが存在してそちらの方が新しい場合はコピーしない。 デフォルトはfalse。 |
| includeEmptyDirs="true" | falseにすると、空のディレクトリーは転送先で削除される。 trueにすると、空のディレクトリーのまま残る。 デフォルトはfalse。 |
| verbose="false" | trueにすると、コピーするファイルのファイル名を表示する。 |
C:\temp\fromの下にあるディレクトリーとファイルをC:\temp\toの下にコピーする例。
<target name="backup">
<sync todir="C:\temp\to" includeEmptyDirs="yes" verbose="true">
<fileset dir="c:\temp\from" includes="**/*" />
</sync>
</target>
C:\temp\fromの下のaaa,bbbというディレクトリーを順番にコピーする例。
<target name="sync2">
<macrodef name="sync.mac">
<attribute name="dir" />
<sequential>
<echo message="@{dir}" />
<sync todir="C:\temp\to\@{dir}" includeEmptyDirs="true">
<fileset dir="C:\temp\from\@{dir}" />
</sync>
</sequential>
</macrodef>
<sync.mac dir="aaa" />
<sync.mac dir="bbb" />
</target>