import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/*
* 通过盘符或者盘符下的所以文件和目录。
* 对盘符下的文件进行遍历,遍历的过程中定义盘条件。
* 如果是文件,直接复制,如果是目录,那就对目录进行迭代。
* 如果目录中的文件还是目录,那就对目录进行递归操作。
* 关闭所有流资源。
* */
public class Test{
public static void main(String[] args) throws IOException{
copyRoot(new File("C:\\"),new File("E:\\"));
}
public static void copyFile(File dest,File src) throws IOException{
InputStream ips = new FileInputStream(src);
OutputStream ops = new FileOutputStream(dest);
byte[] buf = new byte[1024];
int len = 0;
while((len = ips.read(buf))!=-1){
ops.write(buf, 0, len);
}
ips.close();
ops.close();
}
public static void copyDir(File dest,File src) throws IOException{
dest.mkdirs();
File []dirAndFile = src.listFiles();
for(File dirOrFile : dirAndFile){
if(dirOrFile.isFile()){
copyFile(new File(dest.getAbsolutePath()+"\\"+dirOrFile.getName()),
new File(dirOrFile.getAbsolutePath()));
}
else if(dirOrFile.isDirectory()){
copyDir(new File(dest.getAbsolutePath()+"\\"+dirOrFile.getName()),
new File(dirOrFile.getAbsolutePath()));
}
}
}
public static void copyRoot(File dest,File src) throws IOException{
File[] dirAndFile = src.listFiles();
if(src.exists()){
for(File dirOrFile : dirAndFile){
if(!dirOrFile.isHidden()){
if(dirOrFile.isFile()){
File destFile = new File(dest.getAbsolutePath()+"\\"+dirOrFile.getName());
File srcFile = new File(src.getAbsolutePath()+"\\"+dirOrFile.getName());
copyFile(destFile,srcFile);
}
else if(dirOrFile.isDirectory()){
File destDir = new File(dest.getAbsolutePath()+"\\"+dirOrFile.getName());
File srcDir = new File(src.getAbsolutePath()+"\\"+dirOrFile.getName());
copyDir(destDir,srcDir);
}
}
}
}
}
}
搞出来了 不用了各位师兄 师姐 |