- package Tool;
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.Scanner;
- public class CopyTool {
- static String lujing=null;
- public static void main(String[] args) throws IOException{
- System.out.println("请指定源文件路径");
- Scanner sc=new Scanner(System.in);
- String s=sc.nextLine();
- System.out.println("请指定目标路径");
- lujing=sc.nextLine();
- File file=new File(s);
- long start=System.currentTimeMillis();
- Diguicopy1(file);
- long end=System.currentTimeMillis();
- System.out.println("全部copy成功,用时:"+(end-start)/1000+"秒");
- }
- //用于copy指定目录下的所有文件到指定目录
- public static void Diguicopy1(File file) throws IOException{
- File[] srcFile=file.listFiles();
- if(srcFile!=null){
- for (File file2 : srcFile) {
- //判断获取的是否为目录
- if(file2.isDirectory()){
- //是目录就递归
- Diguicopy1(file2);
- //判断文件的后缀是否为java结尾
- }else {
- String newPath=file2.getParent().substring(2);
- //指定目的路径
- File newFile=new File(lujing+newPath);
- //System.out.println();
- if(!newFile.exists())
- newFile.mkdirs();
- //封装数据源
- BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file2));
- //指定数据源
- BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(newFile+file2.getName()));
- //定义数组
- byte[] chs=new byte[1024*100];
- int len=0;
- while((len=bis.read(chs))!=-1){
- bos.write(chs, 0, len);
- }
- bos.close();
- bis.close();
- }
- }
- }
-
-
- }
- // "E:\\新建"E:\\sb\\java
- }
复制代码
|
|