• 复制文件夹


    package filess;
    
    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 FileZongCopy02 {
        public static void main(String[] args) throws IOException {
    
            System.out.println("请输入要复制的文件夹");
            File src = selectFile();
            System.out.println("请输入复制目的文件名夹");
            File dst = selectFile();
    
            // 判断文件夹路径是否相同
            if (!src.equals(dst)) {
                copy(src, dst);
                System.out.println("复制完毕。");
            } else {
                System.out.println("录入的两个文件名相同,不能复制。");
            }
        }
    
        // 判断录入的文件夹是否存在
        private static File selectFile() {
            Scanner sc = new Scanner(System.in);
            
            while(true){
                String s = sc.nextLine();
            File name = new File(s);
            if(!name.exists()){
                System.out.println("您输入的文件夹不存在,请重新输入:");
            }else if(name.isFile()){
                System.out.println("您输入的是一个文件名,请重新输入:");
            }else{
                return name;
            }
            }
    
        }
    
        // 复制文件夹
        private static void copy(File src, File dst) throws IOException {
            File[] files = src.listFiles();
            for (File subFile : files) {
                // 判断子目录是否为文件
                if (subFile.isFile()) {
                    // 指定路径
                    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(subFile));
                    BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dst, subFile.getName())));
                    // 开始读写
                    int len;
                    byte[] b = new byte[1024];
                    while ((len = bis.read(b)) != -1) {
                        bos.write(b, 0, len);
                    }
                    // 如果子目录仍是文件夹则创建该文件夹
                } else if (subFile.isDirectory()) {
                    File newFile = new File(dst, subFile.getName());
                    newFile.mkdirs();
                    // 继续调用文件夹复制方法
                    copy(subFile, newFile);
                }
            }
        }
    }
    smile
  • 相关阅读:
    css3圆形轨迹动画
    css3动画
    3D效果
    css3基础下
    css3基础
    HTML5 表单 中
    HTML5 表单
    面向对象的三大特性、七大原则、类与类间的关系
    四种事务的隔离级别
    线程池(二)
  • 原文地址:https://www.cnblogs.com/qiuqiu001/p/7841391.html
Copyright © 2020-2023  润新知