首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ant --仅从树上的一个子目录复制文件和子目录

Ant --仅从树上的一个子目录复制文件和子目录
EN

Stack Overflow用户
提问于 2011-06-22 02:28:53
回答 2查看 27.7K关注 0票数 6

我想使用Ant从单个子目录复制文件和子目录,而不复制目录结构和内容的其余部分。例如,我想复制dir_3及其文件(file_1到file_n)和子目录(dir_4和dir_5),但不复制dir_1和dir_2。

代码语言:javascript
复制
temp
   \--dir_1
   \--dir_2
       |
       \--dir_3
           |
           \--dir_4
           \--dir_5
           \-- file_1
           |
           \--file_n

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-22 10:34:20

代码语言:javascript
复制
<copy todir="${copy.dir}">
     <fileset dir="temp">
         <include name="**/dir3/**"/>
     </fileset>
</copy>

当您使用include指令时,它将只包含与您提供的模式匹配的文件。在本例中,我只复制完整路径名中包含/dir3/的那些文件。这包括dir3下的子目录和dir3下的所有文件。

您可以使用exclude指令覆盖include指令:

代码语言:javascript
复制
<copy todir="${copy.dir}">
     <fileset dir="temp">
         <include name="**/dir3/**"/>
         <exclude name="**/dir3/*"/>
     </fileset>
</copy>

这将复制这些子目录中的所有子目录和文件,但不会复制dir3本身下的文件。*匹配目录中的所有文件,而**匹配整个目录树中的所有文件。

请注意,这将创建一个目录temp/dir2/dir3。如果我想要temp/dir3,我必须将我的文件集设置为dir3的父目录

代码语言:javascript
复制
<copy todir="${copy.dir}">
     <fileset dir="temp/dir2">
         <include name="dir3/**"/>
     </fileset>
</copy>

执行此操作:

代码语言:javascript
复制
<copy todir="${copy.dir}">
     <fileset dir="temp/dir2/dir3"/>
</copy>

我将创建一个目录temp,其中所有文件都直接在dir3下,在temp下。还将有一个temp/dir4temp/dir5目录,其中包含这些目录下的所有文件(和目录树)。

票数 19
EN

Stack Overflow用户

发布于 2011-06-22 04:10:56

代码语言:javascript
复制
<copy todir="/some/path/foobar" verbose="true">
  <fileset dir="/some/path/temp/dir2" includes="**"/>
</copy>

只需使用从dir2开始的文件集,包括下面的所有目录和文件。

verbose = true,回显复制的所有文件

如果todir指定的dir也需要使用overwrite = true,则可能需要使用overwrite=true

属性已存在,否则复制任务不会覆盖现有文件

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6430192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档