java复制文件夹及所有子目录和文件

package text;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream; public class fileCopy { public static void main(String[] args) throws IOException {
copy("G:/test","E:/test");
System.out.println("复制成功!");
} private static void copy(String f1, String f2) throws IOException {
File file1=new File(f1);
/* File file2=new File(f2);*/ File[] flist=file1.listFiles();
for (File f : flist) {
if(f.isFile()){
copyFile2(f.getPath(),f2+"/"+f.getName()); //调用复制文件的方法
System.out.println("原路径["+f.getPath()+"] 被复制路径["+f2+"/"+f.getName()+"]");
}else if(f.isDirectory()){
copyFile1(f.getPath(),f2+"/"+f.getName()); //调用复制文件夹的方法
System.out.println("原路径["+f.getPath()+"] 被复制路径["+f2+"/"+f.getName()+"]");
}
}
} /**
* 复制文件夹
* @throws IOException
*/
public static void copyFile1(String f1,String f2) throws IOException{
//创建文件夹
File file=new File(f2);
if(!file.exists()){
file.mkdirs();
}
copy(f1,f2);
} /**
* 复制文件
* @throws IOException
*/
public static void copyFile2(String f1, String f2) throws IOException {
try {
InputStream input =new FileInputStream(f1);
OutputStream output=new FileOutputStream(f2);
byte[] bt=new byte[1024];
if((input!=null)&&(output!=null)){
while((input.read(bt))!=(-1)){
output.write(bt,0,bt.length);
}
}
input.close();
output.close(); } catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
上一篇:Linux机器之间复制文件和目录方式&Linux的scp命令详解


下一篇:《More Effective C++》读书笔记(零)Basic 基础条款