java复制文件夹中的所有文件和文件夹到另一个文件夹中

时间:2021-01-20 07:49:16

1.复制文件夹

public static void copyDir(String oldPath, String newPath) throws IOException {
File file = new File(oldPath);
//文件名称列表
String[] filePath = file.list(); if (!(new File(newPath)).exists()) {
(new File(newPath)).mkdir();
} for (int i = 0; i < filePath.length; i++) {
if ((new File(oldPath + file.separator + filePath[i])).isDirectory()) {
copyDir(oldPath + file.separator + filePath[i], newpath + file.separator + filePath[i]);
} if (new File(oldPath + file.separator + filePath[i]).isFile()) {
copyFile(oldPath + file.separator + filePath[i], newpath + file.separator + filePath[i]);
} }
}

2. 复制文件的方法

public static void copyFile(String oldPath, String newPath) throws IOException {
File oldFile = new File(oldPath);
File file = new File(newPath);
FileInputStream in = new FileInputStream(oldFile);
FileOutputStream out = new FileOutputStream(file);; byte[] buffer=new byte[2097152]; while((in.read(buffer)) != -1){
out.write(buffer);
}
}

3. 测试

public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入源目录:");
String sourcePath = sc.nextLine();
System.out.println("请输入新目录:");
String path = sc.nextLine(); //String sourcePath = "D://aa";
//String path = "D://bb"; copyDir(sourcePath, path);
}