拷贝一个目录到指定目录下
例:<copy todir="${basedir}/new">
<fileset dir="${basedir}/old">
<include name="appgen" />
<include name="appgen/" />
<include name=appgen/**" />
<include name="appgen/***" />
</fileset>
</copy>
一样使用<fileset/>属性,name指定目录名,不过这里要分两种状况,用<include/>子属性和不用<include/>子属性.
若使用<include/>, 又要分三种状况
如果“appgen”,则只会拷贝名为appgen的空目录过去,它里面的文件和子目录则不会拷贝。
如果“appgen/”,或“appgen/**”,则会把整个appgen目录拷贝过去,包括里面的文件和子目录。
如果“appgen/*”,则只会把该目录和该目录下第一级子目录的全部东西拷贝过去,而不会拷贝第二级和第二级如下的。注:“appgen/*”这儿是一个*号,*号若大于两个,也跟一个*号是一样效果。好比“appgen/*”和“appgen/****”都只拷贝appgen目录下第一级子目录。
注:若appeng这个目录自己就是个空目录,不管怎么写,这个空目录都不会被拷贝。也就是说,copy操做不会产生建立空目录的做用,要想建立空目录,只有用mkdir。
若不使用任何<include>属性,如
<fileset dir="${basedir}/old">
</fileset>
则会拷贝${basedir}/old下的全部文件和子目录。
注:使用<exclude/>排除目录时,目录名必须写成“appgen/”或“appgen/**”形式,不然不会生效。
以上是三种拷贝到目录的种类,注意若是计算机中没有todir指定的路径,ant将会自动建立这个路径。app