首页 > 编程语言 >Java递归拷贝文件夹

Java递归拷贝文件夹

时间:2024-03-20 21:33:25浏览次数:25  
标签:srcDirFile Java File 递归 destDirFile 文件夹 file new

import java.io.*;
import java.util.Scanner;


public class Demo {

    public static void main(String[] args) {
        File srcDirFile = getDirFile("输入源文件夹路径");
        File destDirFile = getDirFile("输入目标路径");
        if (srcDirFile.equals(destDirFile)) {
            System.out.println("源文件夹和目标文件夹相同,不能复制");
            return;
        }
        try {
            copyDirFile(srcDirFile, destDirFile);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 复制
     *
     * @param srcDirFile
     * @param destDirFile
     */
    private static void copyDirFile(File srcDirFile, File destDirFile) throws Exception {
        File file = new File(destDirFile, srcDirFile.getName());
        file.mkdir();
        File[] srcListFiles = srcDirFile.listFiles();
        for (File subFile : srcListFiles) {
            if (subFile.isFile()) {
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(subFile));
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(file, subFile.getName())));
                int len;
                while ((len = bis.read()) != -1) {
                    bos.write(len);
                }
                bis.close();
                bos.close();
            } else {
                copyDirFile(subFile, file);
            }
        }
    }

    /**
     * 获取文件夹路径
     */
    private static File getDirFile(String msg) {
        Scanner scanner = new Scanner(System.in);
        System.out.println(msg);
        while (true) {
            String line = scanner.nextLine();
            File file = new File(line);
            if (file.isDirectory()) {
                return file;
            } else {
                System.out.println("输入错误,重新输入");
            }
        }
    }
}

  

标签:srcDirFile,Java,File,递归,destDirFile,文件夹,file,new
From: https://www.cnblogs.com/Big-Boss/p/18086141

相关文章

  • java细节篇之动态绑定机制
    大家好,我是教授.F动态绑定机制,在对象上体现。一个对象有编译类型和运行类型,运行类型看=号的右边,编译类型看=号的左边。例如:publicTest{publicstaticvoidmain(String[]args){Animalanimal=newDog();}}classAniaml{}classDogextends......
  • Java递归删除文件夹
    importjava.io.File;importjava.util.Scanner;publicclassDemo{publicstaticvoidmain(String[]args){FiledirFile=getDirFile();delDirFiles(dirFile);}/***递归删除文件夹里所有文件*/privatestaticvoi......
  • Java递归计算一个文件夹所有文件大小
    importjava.io.File;importjava.util.Scanner;publicclassDemo1{publicstaticvoidmain(String[]args){FiledirFile=getDirFile();System.out.println(countDirFile(dirFile));}/***计算文件夹大小*/public......
  • java毕业设计基于微信小程序的中药调理系统
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着现代生活节奏的加快,人们对于健康问题越来越关注。在众多保健方式中,中药以其独特的调理作用和较少的副作用受到广泛欢迎。然而,中药的种类繁多,配方复杂,普通人往......
  • 复试C++15真题_程序设计2_递归_输入字符串倒序转整形
    编写一个递归函数,功能为:输入一个字符串,输出一个整数值。例如输入 "1a2xcz34,5a!6" , 输出654321。一开始想不明白怎么写递归,于是我写了迭代的函数。意识到,递归的过程就是实现了迭代的循环,而循环内的操作本质没有太大差别。于是就写出来了:#include<iostream>usingnam......
  • 归并排序算法 java实现
    publicstaticvoidmain(String[]args){int[]arr={9,5,7,3,1,6,8,4,2};mergeSort(arr,0,arr.length-1);}/***归并排序*注意:归并的拆分数组和合并数组是从左到右依次进行的,网上很多文章都是错误的*并不是左右一起拆分,网上很多文章都是这样的......
  • Java中String类型的创建与比较(详解)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、String类型是什么??二、String类型的创建使用字符串字面量使用new关键字intern()方法简读图解String的比较总结前言提示:这里可以添加本文要记录的大概内容:在背八股文(Holis版)的过程中遇......
  • Java 越来越卷,掌握哪些知识才有机会进大厂?来看各个大厂AI 大模型怎么说?
    通义千问(阿里)在当前竞争激烈的Java开发市场中,为了增加进大厂和获得更好职业发展的机会,Java开发者应关注以下几个核心知识点与技能:基础扎实:•熟练掌握Java基础语法、面向对象设计原则、集合框架、多线程并发编程、异常处理机制等基础知识。•对JVM内存模型、垃圾回......
  • java基础的项目
    334,零钱通   思路:(1)先完成显示菜单,并可以选择菜单,给出对应提示(2)完成零钱通明细,简单的话可以使用String拼接(3)完成收益入账  完成功能驱动程序员增加新的变化和代码(4)消费(5)退出(6)用户输入4退出时,给出提示"你确定要退出吗?y/n",必须输入正确的y/n,否则循环输入指令,直到......
  • (day 13)JavaScript学习笔记(对象1)
    概述        这是我的学习笔记,记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。    今天学习对象,主要是创建对象、对象属性、省略key、遍历对象属性、删......