// 复制文件夹 public static void copyDir(String sourcePath,String newPath) { try { (new File(newPath)).mkdirs(); // 与mkdir()都创建文件夹 ,mkdirs()如果父文件夹不存在也会创建 File fileList = new File(sourcePath); String[] strName = fileList.list(); File temp = null;//游标 for (int i = 0; i < strName.length; i++) { // 如果源文件路径以分隔符File.separator /或者\结尾那就sourcePath if (sourcePath.endsWith(File.separator)) { temp = new File(sourcePath + strName[i]); } else { temp = new File(sourcePath + File.separator + strName[i]); } if (temp.isFile()) { // 如果游标遇到文件 FileInputStream in = new FileInputStream(temp); // 复制且改名 File file = new File(newPath + "/" + temp.getName().toString()); FileOutputStream out = new FileOutputStream(file); byte[] buffer = new byte[1024 * 8]; int length; while ((length = in.read(buffer)) != -1) { out.write(buffer, 0, length); } out.flush(); out.close(); in.close(); } // 如果游标遇到文件夹 if (temp.isDirectory()) { copyDir(sourcePath + "/" + strName[i], newPath + "/" + strName[i]); } } } catch (Exception e) { System.out.println("文件夹复制失败!"); } }
public static void main(String[] args) { // 复制C盘文件到D盘 String sourcePath = "D:\\PDF\\250423"; String newPath = "D:\\PDF1\\250423"; copyDir(sourcePath, newPath); }