package com.lichao.server;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) throws IOException {
File file = new File("d:/a");//源文件对象
if(file.isDirectory()){
//如果源文件对象是文件夹,则在目标盘创建该文件夹,将盘符替换成目标盘符
new File(file.getPath().replace("d:\\", "c:\\")).mkdir();
copyDir(file);//复制文件夹方法
}else if(file.isFile()){
copyFile(file);//复制文件方法
}
}
public static void copyDir(File file) throws IOException{
if(file == null) return;//若传入的file对象为空,则返回;
File[] f = file.listFiles();//文件数组
for (File file1 : f) {
if(file1.isFile()){
copyFile(file1);//复制文件
}else if(file1.isDirectory()){
File file3 = new File(file1.getPath().replace("d:\\", "c:\\"));//修改盘符
file3.mkdir();//创建文件夹
copyDir(file1);//递归
}
}
}
public static void copyFile(File file) throws IOException{
if(file == null) return;
FileInputStream fis = new FileInputStream(file.getPath());
String destFilePath = file.getPath().replace("d:\\", "c:\\");
FileOutputStream fos = new FileOutputStream(destFilePath);
int len = 0;
byte[] buf = new byte[1024];
while((len = fis.read(buf)) != -1){
fos.write(buf, 0, len);
}
fos.close();//关闭输出流
fis.close();//关闭输入流
}
}