package test;
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 {
//复制C盘文件到D盘
String sourcePath = "C:/test";
String newPath = "D:/aaa";
Test.copyDir(sourcePath, newPath);
}
//复制文件夹
public static void copyDir(String sourcePath,String newPath) throws IOException{
(new File(newPath)).mkdirs();
//与mkdir()都创建文件夹 ,mkdirs()如果父文件夹不存在也会创建
File fileList = new File(sourcePath);
String[] strName = fileList.list();
//File[] filelistObj = fileList.listFiles();用这个后面需要.getName();
File temp = null;//游标
for (int i = 0; i < strName.length; i++) {
//如果源文件路径以分隔符File.separator /或者\结尾那就sourcePath
if (sourcePath.endsWith(File.separator)) {
temp = new File(sourcePath+strName[i]);
}else{
temp = new File(sourcePath+File.separator+strName[i]);
}
if(temp.isFile()){
//如果游标遇到文件
FileInputStream in = new FileInputStream(temp);
//复制且改名
File file = new File(newPath+"/"+temp.getName().toString());
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[1024*8];
int length;
while((length = in.read(buffer))!=-1){
out.write(buffer, 0, length);
}
out.flush();
out.close();
in.close();
}
//如果游标遇到文件夹
if(temp.isDirectory()){
copyDir(sourcePath+"/"+strName[i],newPath+"/"+strName[i]);
}
}
}
}