多线程 java文件复制,文件提取,删除,zip压缩工具

本文介绍了一种通过配置文件来定义和执行多种文件操作任务的方法,如文件复制、删除及压缩等,并提供了详细的配置说明及示例。

配置说明:

<!-- 配置文件说明 -->
<!--
 property:变量节点,配置文件中可以通过${变量名称}引用该变量值
 
 property属性:
 {
  name:变量名称
  value:变量值
  type:变量类型,目前只支持时间类型date
  pattern:格式,目前只支持type为date时有效
 }
 
 property子节点:
 add:日期加固定时间,property子节点,只有当property为date时有效
 subtract:日期减固定时间,property子节点,只有当property为date时有效
 格式:
 year:时间大小,将日期年份(加/减)固定时间
 month:时间大小,将日期月份(加/减)固定时间
 day:时间大小,将日期天(加/减)固定时间
 hour:时间大小,将日期小时(加/减)固定时间
 minute:时间大小,将日期分钟(加/减)固定时间
 second:时间大小,将日期秒(加/减)固定时间
 millisecond:时间大小,将日期毫秒(加/减)固定时间
 注:<add>day:-1</add> 与 <subtract>day:1</subtract> 结果相同
 
 project:任务节点,配置文件可以配置多个project节点执行不同的任务;每个project任务在执行过程中都会分配一个单独的线程;
 
 project属性:
 {
  name:任务名称
  description:任务描述
 }
 
 project子节点:
 
 输出执行的日志记录
 <log file="日志文件地址,可以使用${}引用变量"></log>
 <log>日志文件地址,可以使用${}引用变量</log>
 控制台显示信息
 <echo message="需要显示的信息,可以使用${}引用变量" />
 <echo>需要显示的信息,可以使用${}引用变量</echo>
 创建文件夹:
 <mkdir dir="文件夹地址,可以使用${}引用变量" />
    <mkdir>文件夹地址,可以使用${}引用变量</mkdir>
   
          文件复制copy:
    copy属性:
    {
     source="源文件地址,可以是文件或文件夹,使用${}引用变量,必须设置"
     destdir="目标文件夹,使用${}引用变量,必须设置"
     overwrite="是否覆盖目标文件,false:不覆盖;true:覆盖,可选设置"
     beginmodified="修改时间大于或等于该时间之后的文件,使用${}引用变量,可选设置"
     endmodified="修改时间小于该时间之前的文件,使用${}引用变量,可选设置"
     delemptydir="删除空目录:true|false,可选设置"
     preservelastmodified="保留文件修改时间,true:目标文件保留和源文件相同的修改时间,false:目标文件使用最新时间作为修改时间,可选设置"
     showdetail="是否显示详细:true|false,可选设置"
    }
   
          文件删除delete:
    delete属性:
    {
     source="源文件地址,可以是文件或文件夹,使用${}引用变量,必须设置"
     beginmodified="修改时间大于或等于该时间之后的文件,使用${}引用变量,可选设置"
     endmodified="修改时间小于该时间之前的文件,使用${}引用变量,可选设置"
     delemptydir="删除空目录:true|false,可选设置"
     showdetail="是否显示详细:true|false,可选设置"
    }
   
         文件压缩zip:
   zip属性:
   {
     source="源文件地址,可以是文件或文件夹,使用${}引用变量,必须设置"
     destfile="压缩文件地址使用${}引用变量,必须设置"
     beginmodified="修改时间大于或等于该时间之后的文件,使用${}引用变量,可选设置"
     endmodified="修改时间小于该时间之前的文件,使用${}引用变量,可选设置"
     showdetail="是否显示详细:true|false,可选设置"
     level="压缩级别:整数[1-9],可选设置"
   }
  
   copy,delete,zip子节点
    <include value="需要包含的文件/目录,使用${}引用变量"/>
 <include>需要包含的文件/目录,使用${}引用变量</include>
 
 <exclude value="需要排除的文件/目录,使用${}引用变量"/>
 <exclude>需要排除的文件/目录,使用${}引用变量</exclude>
 
 <beginmodified value="修改时间大于或等于该时间之后的文件,使用${}引用变量,可选设置"/>
 <beginmodified>修改时间大于或等于该时间之后的文件,使用${}引用变量,可选设置</beginmodified>
 
 <endmodified value="修改时间小于该时间之前的文件,使用${}引用变量"/>
 <endmodified>修改时间小于该时间之前的文件,使用${}引用变量</endmodified>
 
 include,exclude匹配规则:
 *:匹配当前目录文件或文件夹,不匹配子目录文件和文件夹
 **:"*"大于等于2,匹配当前目录文件或文件夹,包括子目录文件和文件夹
 例如:
 文件夹d://basefile,d://basefile/temp
 
 d://basefile/*,匹配d://basefile文件夹下所有文件和d://basefile/temp文件夹,但不匹配d://basefile/temp目录下的文件和文件夹
 
 d://basefile/**,匹配d://basefile文件夹下所有文件和d://basefile/temp文件夹,包括d://basefile/temp目录下的文件和文件夹
 -->
 
<!--  项目集成 -->
<!--
如果需要在项目中使用 则需要完成一下步骤:
1.引用filemanage.jar
2.编写config.xml配置文件
3.代码
 调用com.sobey.util.FileManageFactory.execute(参数...)方法:
 execute参数说明:
 String path:配置文件路径
 File file:配置文件对象
 URL url:配置文件地址url对象
 InputStream is:配置文件流对象
 int corePoolSize:线程池核心线程数,default:0
 int maximumPoolSize:线程池最大线程数,default:Integer.MAX_VALUE
-->

 文件下载地址:

http://pan.baidu.com/s/1o8o0Q2e

欢迎评论指导,本人将持续更新!!!

 

转载于:https://my.oschina.net/zjds/blog/705229

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值