`
paladin1988
  • 浏览: 329963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】ant中对文件和目录进行复制和删除

 
阅读更多

 

原文地址:

http://blog.csdn.net/buptdavid/article/details/4854981

 

 

 

4.5 Copy Task:对文件和目录进行复制

 

Copy 任务把一个或多个文件复制到指定的目录下。但要注意的是,如果目标目录下具有同名的文件,那么只有当源文件相对于目标文件更新时,Ant工具才会复制这个文件。在Copy任务中可以使用FileSet类型来定义文件集合。

 

4.5.1 Copy Task的属性及功能

 

Copy 任务具有以下属性:

 

(1)file:用于指定要复制的源文件。

 

(2)preservelastmodified:作用是使得复制后的文件与源文件的最后修改时间相同。默认为false。

 

(3)tofile:用于指定要复制到的文件。

 

(4)todir:用于指定要复制到的目标目录。todir和tofile只能使用其中一个属性。

 

(5)overwrite:用于指定是否需要覆盖目录和文件,不管文件是否比源文件新,都会覆盖。默认为false。

 

(6)filtering:用于指定在复制时是否使用构件文件的全局过滤器对文件进行过滤。默认为false。

 

(7)flatten:用于指定是否需要复制目录,如果为true代表把所有的文件复制到todir属性设定的目录下。默认为false,复制目录。

 

(8)includeEmptyDirs:用于指定是否复制空目录。默认为true。

 

(9)failonerror:用于指定当遇到错误时是否停止执行。默认为true。

 

(10)verbose:用于指定当复制文件时是否记录日志信息。

 

(11)encoding:用于设定复制文件时的编码或文件过滤器使用的编码方式。默认时使用Java虚拟机的编码方式。

 

(12)outputencoding:指定写文件时的编码方式。默认时使用Java虚拟机的编码方式。

 

(13)enablemultiplemappings:用于设定是否允许多个映射。默认为false。

 

(14)granularity:用于指定一个文件修改时间的毫秒数据的允许误差。因为不是所有的文件系统的修改时间都是精确到毫秒数。默认时为0,如果为DOS系统则为2。

 

4.5.2 通过Copy Task实现文件和目录复制功能实例

 

不管是对程序进行打包还是一般的文件操作,基本上都离不开复制功能。通过Ant工具的Copy任务可以让程序在Windows和Linux/UNIX下对文件和目录进行复制操作。例如:

 

(1)对单个文件进行复制:

 

<copy file="myfile.txt" tofile="mycopy.txt"/>

 这个例子的作用是在当前目录复制myfile.txt,并把复制的文件命名为mycopy.txt。当需要把文件复制到别外的目录时可以这样编写:

 

 

 

<copy file="myfile.txt" todir="../some/other/dir"/>

 

这个例子的作用是把文件复制到与当前目录同级的some目录的/other/dir子目录下。这里“..”代表相对路径(当前目录的上一级目录)。

 

 

(2)对文件目录进行复制:

 

<copy todir="../new/dir">
    <fileset dir="src_dir"/>
</copy>

 这个例子的作用是把src_dir目录复制到../new/dir目录下。有时对文件进行复制时需要对文件进行备份。下面举一个复制文件时对文件进行备份的例子。

 

 

 

<copy todir="../backup/dir">
    <fileset dir="src_dir">
      <exclude name="**/*.java"/>
   </fileset>
   <globmapper from="*" to="*.bak"/>
</copy>

 

这个例子的作用是把src_dir目录及其子目录下所有非Java文件复制到../backup/dir目录下,并重命名为bak文件,以作备份。

 

4.5.3 在执行Copy Task时使用文件过滤的实例

 

下面是一个复制文件的同时替换文件中的特殊符号的例子:

 

<copy todir="../backup/dir">
    <fileset dir="src_dir"/>
    <filterset>
      <filter token="TITLE" value="Foo Bar"/>
    </filterset>
</copy>

 

这个例子的作用是把src_dir目录下的所有文件复制到../backup/dir目录,并在所有文件中查找并替换@TITLE@为Foo Bar。当要进行新产品发布时通过需要替换文件中的版本信息和时间信息。

 

说明:在Ant工具中还提供了copydir和copyfile这两个特定的任务,分别用于对目录和文件进行复制。但自从有了Copy任务后,这两个任务已过期,不建议再使用,应该统一使用Copy任务。

 

4.6 Delete Task:对文件和目录进行删除

 

Delete 任务可用于删除一个或多个文件,或删除一个或多个目录和目录下的文件。默认时不会删除空目录,要删除空目录可以设定includeEmptyDirs属性为true。在Delete任务中可以使用FileSet和DirSet类型。

 

 

4.6.1 Delete Task的属性及功能

 

Delete任务包括以下属性:

 

(1)file:用于指定要删除的文件的名称,可以为相对路径或绝对路径。

 

(2)dir:指定一个将要被删除的根目录。这个目录下的子目录及文件将可能被删除。dir属性和file属性两者必须指定其一。

 

(3)verbose:作用是指定是否在命令行中输出被删除的文件的名称。默认为false。

 

(4)quiet:作用是指定当要被删除的文件或目录不存在时是否不显示提示信息。默认为false,代表要显示提示信息。

 

(5)failonerror:用于指定当出现错误时是否停止执行命令。

 

(6)includeemptydirs:表明当使用FileSet类型时是否删除空的目录。

 

(7)includes:用于指定将要删除的文件或目录的模式。可用逗号或空格符进行分隔。

 

(8)includesfile:用于指定要删除的文件的模式。已不建议使用。

 

(9)excludes:用于指定一个或多个文件模式或目录模式。这些符合条件的文件和目录将不被删除。

 

(10)excludesfile:用于指定将不被删除的文件模式,已不建议使用。

 

(11)defaultexcludes:用于指定是否使用Ant默认的default excludes模式,已不建议使用。

 

(12)deleteonexit:用于指定是否采用Java File类中的deleteOnExit()方法进行判断,如果使用这个方法,那么仅当存在文件时才进行删除,默认取值为false。

 

 

4.6.2 在执行Delete Task时使用文件过滤的实例

(1)删除单个文件的实例:

 

<delete file="/lib/ant.jar"/>

这个例子的作用是删除lib目录下的ant.jar文件。

 

 

(2)删除目录的实例:

 

<delete dir="lib"/>

 

这个例子的作用是删除lib目录,包括这个目录的所有子目录及文件,可以通过include或exclude类型指定删除的部分文件,而不是目录下的所有文件。

 

 

(3)删除所有备份文件和空的目录的例子:

 

<delete includeEmptyDirs="true">
    <fileset dir="." includes="**/*.bak"/>
</delete>

 这个例子的作用是删除当前目录以及其子目录下的所有.bak文件,同时也删除所有空的目录。

 

aaa

 

分享到:
评论

相关推荐

    ant的build配置文件

    1. **项目(Project)**:这是Ant文件的顶级元素,它定义了项目的属性,包括项目名称、版本以及默认目标。 2. **属性(Properties)**:Ant允许定义和使用属性,这些属性可以在整个构建过程中被引用,用于存储配置...

    ANT中文文档

    ANT的主要理念是“一切都是文件”,这意味着它可以处理任何类型的文件操作,如复制、删除、解压缩等。 二、ANT的基本结构 ANT的核心部分是构建文件(Build File),通常命名为`build.xml`。这个文件包含了一系列的...

    ant-build_xm文件说明,对用ant构建进行了详细的说明!

    此外,Ant还有许多内置任务,如`&lt;copy&gt;`用于复制文件和目录,`&lt;jar&gt;`用于创建JAR文件,`&lt;delete&gt;`用于删除文件和目录,以及`&lt;mkdir&gt;`用于创建目录。这些任务都有各自的属性和子元素,可以根据需要进行配置。 尽管本...

    apache-ant-1.7.0.rar安装文件

    这个"apache-ant-1.7.0.rar"是Apache Ant 1.7.0版本的安装文件,大小刚好小于10MB,适合在各种环境中快速下载和安装。 Ant 的核心概念是构建文件(build.xml),这是一个XML文档,包含了项目构建的所有步骤和指令。...

    apache-ant-1.6.0-bin.zip_ant 1_ant 1.6_ant 1.6.0_ant-1.6.0_apach

    Ant的核心概念是任务(Tasks),这些任务是可执行的动作,如`javac`用于编译Java源代码,`jar`用于打包类文件为JAR文件,`copy`用于复制文件,`delete`用于删除文件或目录等。用户可以通过扩展Ant的任务或者编写...

    一个常用的ant的build.xml

    Ant是基于XML的,它的核心在于`build.xml`文件,这个文件是项目的构建脚本,详细定义了构建过程中的各种任务和依赖关系。 标题“一个常用的ant的build.xml”暗示了我们讨论的是一个标准且常见的Ant构建配置文件。...

    ant 中文帮助文档

    3. **任务(Tasks)**:熟悉各种内置任务,如`javac`用于编译Java源代码,`jar`用于创建JAR文件,`copy`用于复制文件,`delete`用于删除文件或目录,以及`mkdir`用于创建目录等。 4. **依赖关系(Dependencies)**...

    Ant构建文件

    标题中的“Ant构建文件”指的是Apache Ant,一个Java平台上的开源构建工具。它被广泛用于自动化Java项目的构建、编译、测试和部署过程。Ant基于XML,开发者可以通过编写XML配置文件来定义构建任务,这些任务可以是...

    ant使用手册(中文教程)

    Ant是Apache软件基金会开发的一款Java项目构建工具,...通过阅读“ant使用手册(中文教程)”,无论是初学者还是有经验的开发者,都能深入理解Ant的工作原理和使用技巧,从而更好地在Java项目中运用Ant进行自动化构建。

    ant 使用指南-ant入门

    - 文件集是Ant处理文件和目录的一种方式,可以指定一组文件,然后在多个任务中重用。 5. **宏定义(Macrodefs)** - 宏定义允许创建自定义的任务,方便复用和抽象复杂的构建逻辑。 6. **依赖关系(Dependencies...

    ant脚本资料ant

    - **路径元素(Path Element)**:Ant中的`&lt;path&gt;`元素用于定义类路径或文件路径,可以包含多个目录和文件。 3. **Ant常用任务** - **javac任务**:用于编译Java源代码,可以设置源和目标兼容性级别,以及处理...

    ANT_发布项目中_build.xml_文件的详细配置

    在IT行业的软件开发领域,构建工具扮演着至关重要的角色,其中Apache Ant因其灵活性和强大的功能,在Java项目构建中被广泛采用。本文将深入探讨在Ant发布项目中的`build.xml`文件配置,帮助开发者理解并掌握如何通过...

    java项目ant打包脚本

    - 部署:将JAR文件和其他相关文件复制到指定的服务器或目录。 7. **Ant与Maven对比**: 虽然Ant在Java项目中历史悠久,但随着Maven的出现,许多项目开始转向Maven。Maven同样使用XML配置,但它提供了一套标准的...

    Ant基本应用教程学习

    通过这些数据类型,Ant能够方便地对文件和目录进行操作。 Ant构建项目的基本流程包括编译Java源代码、打包成JAR文件、生成WAR文件以及将应用打包等。Ant提供了专门的任务来处理这些操作,如任务用于编译代码,任务...

    ant简明教程;ant调用bat方法

    除了这些基础任务,Ant还能进行Java工程的构建和部署。例如: - 使用`javac`任务编译Java源代码。 - 使用`java`任务运行已编译的Java类。 - 使用`jar`任务创建Java类库JAR文件。 - 使用`war`任务打包Java EE项目为...

    ant工具使用.zip

    1. **任务(Task)**:Ant的工作单元,执行特定的动作,比如`javac`用于编译Java源代码,`copy`用于复制文件,`mkdir`用于创建目录等。 2. **属性(Properties)**:存储配置信息,可以在构建文件中定义并被其他任务...

    ant介绍Ant是什么

    2. `&lt;copy&gt;`:用于复制文件或目录。 3. `&lt;mkdir&gt;`:创建目录。 4. `&lt;delete&gt;`:删除文件或目录。 5. `&lt;jar&gt;`:打包 Java 应用为 JAR 文件。 6. `&lt;war&gt;`:打包 Web 应用为 WAR 文件。 7. `&lt;ear&gt;`:打包企业级应用为 ...

    ant

    4. **内置任务**:Ant自带了许多内置任务,如`javac`用于编译Java源代码,`jar`用于创建JAR文件,`copy`用于复制文件或目录,`delete`用于删除文件或目录等。 5. **自定义任务**:除了内置任务,开发者还可以编写...

    Ant构建中使用JS脚本方法

    这些任务可以是简单的文件操作,如复制或删除,也可以是复杂的编译、测试和打包过程。Ant提供了许多内建的任务,但有时候这些内建任务无法满足特定项目的需求,这时JavaScript脚本就派上了用场。 在Ant中,我们可以...

Global site tag (gtag.js) - Google Analytics