copy文件夹

来源:互联网 发布:4d 软件 编辑:程序博客网 时间:2024/05/29 23:24

package CE.lecky;
  
  import java.io.*;
  import java.util.*;
  /**
  *复制文件
  *by lecky.lee
  *2006-06-08
  */
  
  public class CopyFile
  {
  String intiPathOut;
  //初始输出路径
  int cnt=0;
  //计数器,用于判定是否首次调用copyFiles方法
  public void copyFiles(String pathIn,String pathOut) throws IOException
  {
   File f= new File(pathIn);
   if(!f.exists()){
   System.out.println ("源文件路径不存在");
   System.exit(5);
   }
   if(cnt==0){
   File out = new File(this.intiPathOut);
   out.mkdir();
   //首次调用执行,创建初始输出目录
   }
   if(f.isFile()){
   this.copyFile(f,pathOut);
   }
   else{
   this.copyDir(f,pathOut);
   }
  
   cnt++;
  
  }
  
  public void copyDir(File f,String pathOut) throws IOException{
   System.out.println(f.getPath());
  
  
   pathOut=this.intiPathOut+f.getPath().substring(2);
   //修改输出路径字符串,将子文件夹相对路径追加至初始输出路径
   //substring用于去掉路径中的驱动器盘符
   File dir = new File(pathOut);
   dir.mkdir();
  
  
   File temp[]=f.listFiles();
   for(int i=0;i   this.copyFiles(temp[i].toString(),pathOut);
   //递归调用此方法
   }
  
  }
  
  public void copyFile(File f,String pathOut) throws IOException{
   System.out.println(f.getPath());
  
   DataInputStream in = new DataInputStream(
   new BufferedInputStream(
   new FileInputStream(f.getPath())));
  
  
   byte[] date = new byte[in.available()];
  
   in.read(date);
  
   DataOutputStream out = new DataOutputStream(
   new BufferedOutputStream(
   new FileOutputStream(pathOut+"/"+f.getName())));
  
  
   out.write(date);
  
   in.close();
   out.close();
  
  }
  public static void main(String[] args) throws IOException
  {
   CopyFile cp = new CopyFile();
   cp.intiPathOut="D:/11111111";
   cp.copyFiles("D:/lecky","D:/11111111");
   System.out.println ("复制完毕");
  }
  
  }

原创粉丝点击