`
paladin1988
  • 浏览: 319963 次
  • 性别: 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

 

分享到:
评论

相关推荐

    ant1.9资源

    将文件复制到另外的目录: 2. delete任务 对文件或目录进行删除,举例如下: Eg1. 删除某个文件: Eg2. 删除某个目录: Eg3. 删除所有的备份目录或空目录: **/*.bak"/&gt; 3. mkdir任务 创建目录。...

    Java实现zp大文件解压、合并、复制、删除(30万文件大约2个小时)

    1.程序为定时任务,任务执行时间在bin目录下的配置文件mergeFilleUtil.properties中配置,在配置文件中,TASK_PERIOD表示任务执行时间间隔,单位为妙,如一天的时间间隔配置是86400,TASK_BEGIN_HOUR表示任务开始的...

    dashboardAntDesign:可以在Response JS和Ant Design中进行仪表板响应和响应。 Espero te Sea de Gran utilidad

    该项目是通过。可用脚本在项目目录中,可以运行:npm start 在开发模式下运行应用程序。 打开在浏览器中查看。... 相反,它将所有配置文件和传递依赖项(webpack,Babel,ESLint等)直接复制到您的项目中

    react-antd-admin:由React.js和Ant-design设计的简单管理面板

    该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。... 而是将所有配置文件和传递依赖项(Webpack,Babel,ESLint等)直接复制

    salesforce-package-generator:Salesforce ANT 工具生成 package.xml

    用于生成 package.xml 文件的 Salesforce ANT 工具。 按照步骤构建工具。 安装 JDK 8(需要 8 或更高版本)。 从这里下载 安装 ANT(下载并解压到某处)。 从这里下载 在命令提示符下运行 javac -version 和 java...

    Hibernate 中文 html 帮助文档

    目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助...

    gradle-7.6.1-all.zip 快速下载

    3.工具链下载期间构建gradle本身失败:在内复制文件的权限被拒绝。格拉德/jdks 4.用7.6回归:不再找到JVM库项目中的@pom工件 5.删除安全凭据引用 6.由于TestResultProcessor中的签名更改,Kotlin MPP插件在Gradle 7.6...

    解决JBuilder2006中JSP不能使用泛型的问题

    查了很多资料,都没有解决,有说在Tomcat/common/lib中加入ant.jar,删除原来jasper-compiler-jdt.jar,修改web.xml,我试了多次,在JBuilder2006里始终没有解决。 &lt;br&gt;后来记得自己另外安装过一个Tomcat...

    Hibernate+中文文档

    目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和...

    hibernate3.2中文文档(chm格式)

    Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One shot delete) 19.6. 监测性能(Monitoring performance) 19.6.1. 监测SessionFactory 19.6.2. 数据记录(Metrics) 20. 工具箱指南 20.1. ...

    Serv-U,FTP服务器软件,版本号7.2

    通过使用Serv-U,用户能够将任何一台PC 设置成一个FTP 服务器,这样,用户或其他使用者就能够使用FTP 协议,通过在同一网络上的任何一台PC与FTP 服务器连接,进行文件或目录的复制,移动,创建,和删除等。...

    Hibernate中文详细学习文档

    Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One shot delete) 19.6. 监测性能(Monitoring performance) 19.6.1. 监测SessionFactory 19.6.2. 数据记录(Metrics) 20. 工具箱指南 20.1. ...

    hibernate3.04中文文档.chm

    Bag和list是反向集合类中效率最高的 20.5.4. 一次性删除(One shot delete) 20.6. 监测性能(Monitoring performance) 20.6.1. 监测SessionFactory 20.6.2. 数据记录(Metrics) 21. 工具箱指南 21.1....

    dave-java-captools:用Java编写的Captricity API客户端

    java-captools 1.1用Java编写的Captricity API客户端库当前,Captricity API客户端库提供了完成以下任务的方法: 创建一个批次读取(获取)批处理删除批次将批处理文件添加到批处理中提交批次进行处理获取特定批次的...

    网狐荣耀版开发使用常见问题解答

    二、删除文件试一下,看看是不是文件被占用,如果删除不了,就是被占用,可以查是哪个程序占用,不行重启服务器试一下。 三、是不是路径有问题。 十二、网狐荣耀版房卡游戏在手机客户端不出现房卡房间 最近,有...

    changguangduan:找对手技术栈:React + Webpack + Ant design + React-Router

    该项目是通过。可用脚本在项目目录中,可以运行:npm start 在开发模式下运行应用程序。 打开在浏览器中查看。... 而是将所有配置文件和传递依赖项(Webpack,Babel,ESLint等)直接复制到您的项目中,以

    fckedit编辑器

    然后将FCKeditor-2.3.zip(java)压缩包中\web\WEB-INF\lib\目录下的两个jar文件拷到项目的\WEB-INF\ lib\目录下把其中的src目录下的FCKeditor.tld文件copy到TestFCKedit/WEB-INF/下 4.合并web.xml: 将FCKeditor-...

    hibernate 框架详解

    目录 前言 1. 翻译说明 2. 版权声明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一...

    ceylon.build:基于锡兰任务的构建系统

    锡兰.build 基于锡兰任务的构建系统。... 在新流程中启动命令的任务锡兰任务: 编译,运行,测试,记录锡兰模块的任务文件任务: 复制/删除文件和目录的任务用法创建一个构建模块。 构建模块是标准的锡兰模

    HibernateAPI中文版.chm

    Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One shot delete) 19.6. 监测性能(Monitoring performance) 19.6.1. 监测SessionFactory 19.6.2. 数据记录(Metrics) 20. 工具箱指南 20.1. ...

Global site tag (gtag.js) - Google Analytics