zoukankan      html  css  js  c++  java
  • 复制文件夹

    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
  • 相关阅读:
    PHP学习(6)——代码重用与函数编写的一些注意事项
    PHP学习(5)——字符串操作与POSIX正则
    PHP学习(4)——数组的使用
    Three.js基础探寻十——动画
    PHP学习(3)——数据的存储与检索
    Three.js基础探寻九——网格
    PHP学习(2)——操作符与迭代整理
    个人寒假作业项目《印象笔记》第一天
    《需求工程》阅读笔记2
    《需求工程》阅读笔记
  • 原文地址:https://www.cnblogs.com/qiuqiu001/p/7841391.html
Copyright © 2011-2022 走看看