文件夹拷贝
标签: 算法探究
文件夹拷贝
package com.servlet;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* 文件夹拷贝
* @author libinghua
* @version 2017年4月5日 下午11:33:41
*/
public class DirCopyTest {
public static void main(String[] args) throws IOException {
File src = new File("E:/libinghua/frontEnd/课件");
File dest = new File("E:/copy/");
copyDir(src, dest);
}
@SuppressWarnings("unused")
private static void showFile(File fs){
for(File f: fs.listFiles()) {
if(f.isFile())
System.out.println(f.getAbsolutePath());
else {
showFile(f);
}
}
}
private static void copyDir(File src, File dest) throws IOException{
for(File f: src.listFiles()) {
if(f.isFile()){
copyFile(f, new File(dest, f.getName()));
}
/**若是文件夹需要,先创建文件夹*/
else {
File mk = new File(dest, f.getName());
mk.mkdirs();
copyDir(f, mk);
}
}
}
private static void copyFile(File src, File dest) throws IOException {
byte[] b = new byte[1024];
int len = -1;
InputStream is = new FileInputStream(src);
OutputStream os = new FileOutputStream(dest);
while((len=is.read(b)) != -1) {
os.write(b, 0, len);
}
os.flush();
os.close();
is.close();
}
}