我需要使用Ant脚本复制除该文件夹中的目录之外的文件夹中的所有文件.
我使用下面的脚本来做到这一点.
<copy todir="targetsir">
<fileset dir="srcdir">
<include name="**/*.*"/>
</fileset>
</copy>
Run Code Online (Sandbox Code Playgroud)
但它会复制该文件夹中的所有文件和目录.
如何限制/过滤该文件夹中的目录?
谢谢,
ska*_*man 10
你的意思是srcdirconatins子目录,而你不想复制它们,你只想将文件复制到一层srcdir?
<copy todir="targetsir">
<fileset dir="srcdir">
<include name="*"/>
<type type="file"/>
</fileset>
</copy>
Run Code Online (Sandbox Code Playgroud)
这应该工作.**/*.*您问题中的" "表示"每个子目录下的每个文件".只使用" *"将匹配srcdir下的文件,而不是子目录.
编辑以排除创建空子目录.
我没有足够的声誉来评论,所以我在这里写新帖子.这两种解决方案一般都包含name="*"或name="*.*"工作正常,但它们都不是您所期望的.
第一个创建源目录中存在的空目录,因为它也*匹配目录名.*.*主要是因为文件有扩展名和目录的约定,但是如果你命名你的目录my.dir,这个通配符也会创建一个带有这个名字的空目录.
要正确地执行此操作,您可以利用接受的<type />选择器<fileset />:
<copy todir="targetsir">
<fileset dir="srcdir">
<include name="*"/>
<type type="file"/>
</fileset>
</copy>
Run Code Online (Sandbox Code Playgroud)