解答例 - 5.セレクタ
(実習課題1)
カレントディレクトリに存在するlogsディレクトリ以下のファイルを、同じくカレントディレクトリに存在するbackupディレクトリにディレクトリ構造そのままでコピーするためのビルドファイルを作成して下さい。このとき、以下の条件をすべて満たすファイルだけコピーされるようにして下さい。
- ファイル名が「.log」または「.out」で終わるもの。
- 前回コピーしてから更新されているもの。
- ファイルサイズが100Kバイトを超えているもの。
- logsディレクトリ直下より一段以上深いディレクトリ内の存在するもの。
解答例
▼解答例<?xml version="1.0" encoding="Windows-31J"?>
<!--
* build.xml
* TECHSCORE Java Ant 5章 実習課題
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
-->
<project name="chapter5" default="copylog" basedir=".">
<!--ディレクトリ名のプロパティ -->
<property name="logs" value="logs" />
<property name="backup" value="backup" />
<!--パターン-->
<patternset id="copyfiles">
<include name="**/*.log" />
<include name="**/*.out" />
</patternset>
<!--ディレクトリごとコピー -->
<target name="copylog" >
<echo message="Copying backup of log directory!"/>
<copy todir="${backup}">
<fileset dir="${logs}" defaultexcludes="no" >
<depend targetdir="${backup}" />
<depth min="1" />
<size value="100" units="ki" when="more" />
<patternset refid="copyfiles"/>
</fileset>
</copy>
</target>
</project>
▼テスト用サンプルデータ
サンプルとしてテスト用データ(sampleData5-1.lzh)を用意しております。

