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();  
       }  
 }
}

 

posted @ 2016-01-12 19:16  Angto  阅读(1190)  评论(0编辑  收藏  举报