1.从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class DirCopyDemo {
public static void main(String[] args) throws IOException {
Scanner s = new Scanner(System.in);
System.out.println("输入源目录路径");
String s1 = s.nextLine();
System.out.println("输入目的目录路径");
String s2 = s.nextLine();
File from = new File(s1);
File to = new File(s2);
if(!to.exists()){
to.mkdirs();
}
CopyDir(from, to);
}
private static void CopyDir(File from, File to) throws IOException {
FileInputStream fis = null;
FileOutputStream fos = null;
File[] froms = from.listFiles();
int len=0;
byte[] wj = new byte[1024];
for (File f : froms) {
if (f.isDirectory()) {
// 如果是文件夹,需要在to中创建一个名称相同的文件夹,
// 然后再递归到该文件夹里面,复制相应的文件
// 对于创建的文件夹名称,需要获取到目的to绝对路径,然后加上f的名称
File newfile = new File(to.getAbsolutePath() + "\\"
+ f.getName());
newfile.mkdirs();
// 此处就需要进入新建的文件夹内部进行递归
// 这样才能复制该文件夹内的文件
CopyDir(f, newfile);
} else {
// 在输出目的to的文件名称 需要先获取到f的文件名称 然后加上file2的绝对路径
//这样就能创建一个名称相同的文件
fis = new FileInputStream(f);
fos= new FileOutputStream(to.getAbsolutePath()+"\\"+f.getName());
while ((len = fis.read(wj)) != -1) {
fos.write(wj, 0, len);
fos.flush();
}
fis.close();
fos.close();
}
}
}
}