package cn.itcast;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 文件夹复制
*/
public class Test{
public static void main(String[] args) throws IOException {
File srcDir = new File("c");
File destDir = new File("d");
copyDir1(srcDir, destDir);
}
public static void copyDir1(File srcDir,File destDir) throws IOException {
if(!srcDir.isDirectory()) {
System.out.println("源文件夹不存在或者源文件夹有误");
}
if(!destDir.isDirectory()) {
System.out.println("目标文件夹不存在或者源文件夹有误");
}
//明确老文件夹与新文件夹,将老文件夹的东西复制到新文件夹中
File oldDir = srcDir;
File newDir = new File(destDir,oldDir.getName());
//创建文件夹
newDir.mkdirs();
//获取老文件夹下所有的文件对象(文件或者文件夹)
File[] fileorDirs = oldDir.listFiles();
//遍历文件对象数组,依次获取每一个文件对象(文件或者文件夹)
for (File fileorDir : fileorDirs) {
if(fileorDir.isFile()) {
//如果是文件
//明确确定源文件和目标文件
File oldFile = fileorDir;
File newFile = new File(newDir,oldFile.getName());
FileInputStream fis = new FileInputStream(oldFile);
FileOutputStream fos = new FileOutputStream(newFile);
byte[] bytes = new byte[1024];
int len;
while((len=fis.read(bytes))!=-1) {
fos.write(bytes, 0, len);
}
fos.close();
fis.close();
}else {
//如果是文件夹
File inneroOldDir = fileorDir;
File newDir2 = newDir;
//递归调用复制文件夹的方法
copyDir1(inneroOldDir,newDir2);
}
}
}
}
|
|