package Copy;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 复制一个文件夹到另一个文件下
*/
public class Copy {
public static void main(String[] args) throws IOException {
File src = new File("E:\\考试代码");
File dest = new File("D:\\");
copyFolder(src, dest);
System.out.println("OK");
}
static void copyFolder(File src, File dest) {
if (src.isDirectory()) {
// 如果目标目录不存在则创建
if (!dest.exists()) {
dest.mkdirs();
}
// 获取此目录下的文件及目录的名字
String files[] = src.list();
for (String file : files) {
System.out.println(file);
// 根据(src,dest)父抽象路径名和子路径名字符串(file)创建一个新的实例
File srcFile = new File(src, file);
File destFile = new File(dest, file);
// 递归复制文件
copyFolder(srcFile, destFile);
}
} else {
// 如果是文件则直接复制
FileInputStream fis = null;
FileOutputStream fos = null;
try {
// 创建输入流,读取文件
fis = new FileInputStream(src);
// 创建输出流,写入文件
fos = new FileOutputStream(dest);
byte[] bs = new byte[1024];
int count;
while ((count = fis.read(bs)) != -1) {
fos.write(bs, 0, count);
fos.flush();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {// 关流释放资源
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}