import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class TestCopyFile { private static int a = 5; public static void main(String[] args) { //需要复制的目标文件或目标文件夹 String pathname = "C:\\Users\\w_wangsh\\Desktop\\升级脚本\\20210625\\"; File fromFile = new File(pathname); //复制到的位置 String topathname = "C:\\Users\\w_wangsh\\Desktop\\a"; File toFile = new File(topathname); try { copy(fromFile,toFile); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void copy(File fromFile, File toFile) throws Exception { byte[] b = new byte[1024]; int a; FileInputStream fis; FileOutputStream fos; if (fromFile.isDirectory()) { String filepath = fromFile.getAbsolutePath(); filepath=filepath.replaceAll("\\\\","/"); String toFilepath = toFile.getAbsolutePath(); toFilepath=toFilepath.replaceAll("\\\\","/"); int lastIndexOf = filepath.lastIndexOf("/"); toFilepath = toFilepath + filepath.substring(lastIndexOf,filepath.length()); File copy=new File(toFilepath); //复制文件夹 if (!copy.exists()) { copy.mkdir(); } //遍历文件夹 for (File f : fromFile.listFiles()) { copy(f,copy); } } else { if (toFile.isDirectory()) { String filepath = fromFile.getAbsolutePath(); filepath=filepath.replaceAll("\\\\","/"); String toFilepath = toFile.getAbsolutePath(); toFilepath=toFilepath.replaceAll("\\\\","/"); int lastIndexOf = filepath.lastIndexOf("/"); toFilepath = toFilepath + filepath.substring(lastIndexOf,filepath.length()); //写文件 File newFile = new File(toFilepath); fis = new FileInputStream(fromFile); fos = new FileOutputStream(newFile); while ((a = fis.read(b)) != -1) { fos.write(b); } } else { //写文件 fis = new FileInputStream(fromFile); fos = new FileOutputStream(toFile); while ((a = fis.read(b)) != -1) { fos.write(b); } } } } }