根据SVN距给定时间之后提交的文件进行增量部署Java工具类

来源:互联网 发布:影子网络怎么进入 编辑:程序博客网 时间:2024/04/30 10:48

这个工具类的作用详见代码注释。

如果你每天都要进行增量部署,那么使用这个工具类,可以大大简化部署程序,省去一大堆麻烦。


package com.arvon.filedetector;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.text.SimpleDateFormat;/** * 找出给定时间之后的所有修改过的文件, * 将该文件的路径截取一定级别拷贝到另一个文件夹中 *@author Huangwen *2017-4-6 */public class FileDetector {public static void detectAllFile(File f,String time) throws Exception{long ts = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time).getTime();        String[] split = f.getPath().split("WebRoot");        String p = split.length>1 ? split[1].substring(1) : null;        if(p!=null)        if(f.lastModified() >= ts && (f.isFile())){            System.out.println(p);            moveTo(f,"D:\\filesupdated\\"+p);            }        if(f.isDirectory()){             File[] f1 = f.listFiles();               for(int i = 0;i < f1.length;i++)                  detectAllFile(f1[i],time); //递归调用        }}public static void moveTo(File oldFile,String dir) throws Exception{new File(dir.substring(0,dir.lastIndexOf("\\")+1)).mkdirs(); //创建文件夹InputStream inStream = new FileInputStream(oldFile); FileOutputStream fs = new FileOutputStream(dir); byte[] buffer = new byte[1444]; int byteread = 0; while ( (byteread = inStream.read(buffer)) != -1) fs.write(buffer, 0, byteread); inStream.close(); }}//-----------------------------------package com.arvon.filedetector;import java.io.File;/** * 测试类 *@author Huangwen *2017-4-6 */public class FileTest {public static void main(String[] args) throws Exception {String uri= "D:\\svn_worl\\syjd\\WebRoot\\";File f = new File(uri);FileDetector.detectAllFile(f,"2017-04-06 12:10:00");}}


0 0
原创粉丝点击