我需要的所有文件夹中复制,除了目录使用Ant脚本文件夹中。
即时通讯使用下面的脚本来做到这一点。
<copy todir="targetsir">
<fileset dir="srcdir">
<include name="**/*.*"/>
</fileset>
</copy>
但它拷贝该文件夹中的所有文件和目录。
如何限制该文件夹中/ filter目录?
谢谢,
我需要的所有文件夹中复制,除了目录使用Ant脚本文件夹中。
即时通讯使用下面的脚本来做到这一点。
<copy todir="targetsir">
<fileset dir="srcdir">
<include name="**/*.*"/>
</fileset>
</copy>
但它拷贝该文件夹中的所有文件和目录。
如何限制该文件夹中/ filter目录?
谢谢,
你的意思是srcdir
conatins子目录,你不想复制它们,你只是想将文件复制下面的一级srcdir
?
<copy todir="targetsir">
<fileset dir="srcdir">
<include name="*"/>
<type type="file"/>
</fileset>
</copy>
这应该工作。 在“ **/*.*
”你的问题中的意思是“每个子目录下的所有文件”。 只要使用“ *
”将只匹配下SRCDIR的文件,而不是子目录。
编辑以排除空的子目录的创建。
我觉得还有一个更简单的方法。
flatten="true"
-忽略源目录的目录结构中,所有文件复制到单个目录,由todir属性指定指定。 默认是false
。
我没有足够的信誉发表评论,所以我在这里写新的岗位。 这两种解决方案,包括name="*"
或name="*.*"
做工精细,一般,但他们都不是你所期望的是什么。
首先创建空的目录中存在的源目录,因为*
目录名也匹配。 *.*
的作品主要是因为会议的文件扩展名必须与目录没有,但如果你的名字你的目录my.dir
,该通配符将使用此名称创建一个空的目录中。
要正确地做到这一点,你可以利用<type />
选择器, <fileset />
接受:
<copy todir="targetsir">
<fileset dir="srcdir">
<include name="*"/>
<type type="file"/>
</fileset>
</copy>
你能试一下吗
<copy todir="targetsir">
<fileset dir="srcdir">
<include name="*.*"/>
</fileset>
</copy>
**用于匹配的目录结构。
<copy todir="targetsir" includeEmptyDirs="false">
<fileset dir="srcdir">
<include name="*"/>
</fileset>
</copy>
如果你的文件夹下有很多子目录,你不希望他们被复制(如果你只想文件)试试这个..
<target name="copy">
<copy todir="out" flatten="true">
<fileset dir="tn">
<filename name="**/cit.txt" />
</fileset>
</copy>
</target>
秘诀是使用未文件集,但dirset代替。