// 复制文件夹
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);
}