Nó không phải là khó khăn ...
<copy todir="${copy.dir}">
<fileset dir="temp">
<include name="**/dir3/**"/>
</fileset>
</copy>
Khi bạn sử dụng chỉ thị include
, nó sẽ chỉ bao gồm các tệp khớp với mẫu bạn cung cấp. Trong trường hợp này, tôi chỉ sao chép những tệp có /dir3/
ở đâu đó trong tên đường dẫn đầy đủ của chúng. Điều này bao gồm các thư mục con dưới dir3
và tất cả các tệp dưới dir3
.
Bạn có thể sử dụng các chỉ thị exclude
để ghi đè lên include
directives:
<copy todir="${copy.dir}">
<fileset dir="temp">
<include name="**/dir3/**"/>
<exclude name="**/dir3/*"/>
</fileset>
</copy>
này sẽ sao chép tất cả các thư mục con và các tập tin trong các thư mục phụ, nhưng không phải là file dưới dir3
riêng của mình. *
khớp với tất cả các tệp trong thư mục trong khi **
khớp với tất cả các tệp trong toàn bộ cây thư mục.
Lưu ý điều này sẽ tạo một thư mục temp/dir2/dir3
. Nếu tôi muốn temp/dir3
, tôi phải thiết fileset của tôi vào thư mục cha của dir3
:
<copy todir="${copy.dir}">
<fileset dir="temp/dir2">
<include name="dir3/**"/>
</fileset>
</copy>
Việc làm này:
<copy todir="${copy.dir}">
<fileset dir="temp/dir2/dir3"/>
</copy>
sẽ tạo ra một thư mục temp
với tất cả các file trực thuộc dir3
trực thuộc temp
. Cũng sẽ có một thư mục temp/dir4
và temp/dir5
chứa tất cả các tệp (và cây thư mục) trong các thư mục đó.
Nguồn
2011-06-22 02:34:20