package com.ruoyi.modules.monitor; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.UUID; /** * @author liu pei * @version 1.0.0 * @ClassName Test.java * @Description TODO * @createTime 2023年11月20日 22:03:00 */ public class Test { public static void main(String[] args) { // 需要复制的File File srcFile = new File("a"); // 复制目的地File File destFile = new File("b"); if(!destFile.exists()){ destFile.mkdirs(); } // 复制文件夹的功能 try { copyFolder(srcFile, destFile); System.out.println("复制文件成功"); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("复制文件失败"); } } /** * 复制文件夹 * @param srcFile * @param destFile * @throws IOException */ public static void copyFolder(File srcFile, File destFile) throws IOException { // 判断该File是文件夹还是文件 if (srcFile.isDirectory()) { // 文件夹 File newFolder = new File(destFile, srcFile.getName()); newFolder.mkdir(); // 获取该File对象下的所有文件或者文件夹File对象 File[] fileArray = srcFile.listFiles(); for (File file : fileArray) { copyFolder(file, newFolder); } } else { // 文件 File newFile = new File(destFile, srcFile.getName()); copyFile(srcFile, newFile); } } /** * 复制文件 * @param srcFile 需要复制的File * @param newFile 复制目的地File * @throws IOException */ private static void copyFile(File srcFile, File newFile) throws IOException { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile)); byte[] bys = new byte[1024]; int len = 0; while ((len = bis.read(bys)) != -1) { bos.write(bys, 0, len); } bos.close(); bis.close(); } /** * 创建多级文件夹 * @param f * @throws IOException */ public static void createFile(File f) throws IOException{ for(int i=0;i<5;i++){ if(f.exists()){ File file3=new File(f, UUID.randomUUID().toString()); file3.createNewFile(); System.out.println(file3.getName()+" 目录已创建"); } } } }