weaver-hrm-salary/src/CI.java

77 lines
3.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import java.io.*;
import java.time.LocalDate;
/**
* 怀念Jenkins的第365天
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public class CI {
public static void main(String[] args) throws IOException {
String date = LocalDate.now().toString();
//拷贝classbean
File src = new File("H:\\code\\salary\\out\\production\\salary\\com"); //源文件夹
File desc = new File("C:\\Users\\钱涛\\Desktop\\" + date + "\\ecology\\classbean\\com"); //目标文件夹
if (!desc.exists()) { //如果目标文件夹不存在
desc.mkdirs(); //创建目标文件夹
}
long start = System.currentTimeMillis();
copyFile(src, desc); //复制文件夹
long end = System.currentTimeMillis();
System.out.println("复制文件夹耗时:" + (end - start) + "ms");
}
public static void copyFile(File src, File desc) throws IOException {
if (src.isFile()) { //如果是文件
FileInputStream fis = new FileInputStream(src);
String path = desc.getAbsolutePath();
FileOutputStream fos = new FileOutputStream(path);
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] b = new byte[1024 * 1024];
int len = 0;
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
}
bos.flush();
bos.close();
bis.close();
} else { //如果是文件夹
File[] files = src.listFiles(); //获取文件夹下的所有文件
if (files.length == 0) { //如果文件夹为空
String srcPath = src.getName(); //获取文件夹名称
//拿到新文件夹的路径,新文件夹的路径为:目标文件夹的路径+文件夹名称
String descPath = (desc.getAbsolutePath().endsWith("\\") ? desc.getAbsolutePath() : desc.getAbsolutePath() + "\\" + srcPath);
File newFile = new File(descPath); //创建新文件夹
if (!newFile.exists()) { //如果新文件夹不存在
newFile.mkdirs(); //创建新文件夹
}
} else { //如果文件夹不为空
for (File f : files) { //遍历文件夹下的所有文件
String srcPath = f.getName(); //获取文件或文件夹的名称
String descPath = ""; //新文件夹的路径
if (f.isFile()) { //如果是文件
descPath = desc.getAbsolutePath() + "\\" + f.getName(); //新文件夹的路径为:目标文件夹的路径+文件夹名称
}
if (f.isDirectory()) { //如果是文件夹
//拿到新文件夹的路径,新文件夹的路径为:目标文件夹的路径+文件夹名称
descPath = (desc.getAbsolutePath().endsWith("\\") ? desc.getAbsolutePath() : desc.getAbsolutePath() + "\\" + srcPath);
}
File newFile = new File(descPath); //创建新文件夹
if (f.isDirectory()) { //如果是文件夹
if (!newFile.exists()) { //如果新文件夹不存在
newFile.mkdirs(); //创建新文件夹
}
}
copyFile(f, newFile); //递归调用此时拿到的newFile为目标路径f为源路径
}
}
}
}
}