A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package Tool;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.util.Scanner;

  9. public class CopyTool {
  10.         static String lujing=null;
  11.         public static void main(String[] args) throws IOException{
  12.                 System.out.println("请指定源文件路径");
  13.                 Scanner sc=new Scanner(System.in);
  14.                 String s=sc.nextLine();
  15.                 System.out.println("请指定目标路径");
  16.                 lujing=sc.nextLine();
  17.                 File file=new File(s);
  18.                 long start=System.currentTimeMillis();
  19.                 Diguicopy1(file);
  20.                 long end=System.currentTimeMillis();
  21.                 System.out.println("全部copy成功,用时:"+(end-start)/1000+"秒");
  22.         }
  23.         //用于copy指定目录下的所有文件到指定目录
  24.         public static void Diguicopy1(File file) throws IOException{
  25.                 File[] srcFile=file.listFiles();
  26.                 if(srcFile!=null){
  27.                         for (File file2 : srcFile) {
  28.                                 //判断获取的是否为目录
  29.                                 if(file2.isDirectory()){
  30.                                         //是目录就递归
  31.                                         Diguicopy1(file2);
  32.                                         //判断文件的后缀是否为java结尾
  33.                                 }else {
  34.                                         String newPath=file2.getParent().substring(2);
  35.                                         //指定目的路径
  36.                                         File newFile=new File(lujing+newPath);
  37.                                         //System.out.println();
  38.                                         if(!newFile.exists())
  39.                                         newFile.mkdirs();
  40.                                         //封装数据源
  41.                                         BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file2));
  42.                                         //指定数据源
  43.                                         BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(newFile+file2.getName()));
  44.                                         //定义数组
  45.                                         byte[] chs=new byte[1024*100];
  46.                                         int len=0;
  47.                                         while((len=bis.read(chs))!=-1){
  48.                                                 bos.write(chs, 0, len);
  49.                                         }
  50.                                         bos.close();
  51.                                         bis.close();
  52.                                 }
  53.                         }
  54.                 }
  55.                
  56.                
  57.         }
  58. //        "E:\\新建"E:\\sb\\java
  59. }
复制代码


1 个回复

倒序浏览
思路不是很清晰,打的有点乱
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马