Java复制文件夹及文件到指定位置

2023-11-08

Java实现复制文件夹及文件
思路:
1、首先创建一个复制文件夹的方法,复制文件夹并做判断
2、其次是创建一个复制文件夹中文件的方法

首先复制文件夹。判断是否是文件夹;再判断是否存在,不存在的要创建。

/**
 复制文件夹
 @param file  原文件夹
 @param file1 复制后的文件夹
 */
public static void copyDir(File file, File file1) {
   ///计算复制开始的时间
   begin = System.currentTimeMillis();
   if (!file.isDirectory()) {
       return;
   }
   if (!file1.exists()) {
       file1.mkdirs();
   }
   File[] files = file.listFiles();
   for (File f : files) {
        if (f.isDirectory()) {
            copyDir(f, new File(file1.getPath(), f.getName()));
        } else if (f.isFile()) {
           copyFile(f, new File(file1.getPath(), f.getName()));
        }
   }
   //计算复制完成的时间
   end = System.currentTimeMillis();
}

其次是复制文件夹里面的内容。

/**
 复制文件
 @param file   原文件
 @param file1  复制后的文件
 */
public static void copyFile(File file, File file1) {
    try (FileInputStream fis = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(file1)) {
        byte[] bys = new byte[1024];
        int len;
        while ((len = fis.read(bys)) != -1) {
            fos.write(bys, 0, len);
        }
    } catch (FileNotFoundException e) {
            e.printStackTrace();
    } catch (IOException e) {
            e.printStackTrace();
    }
}

整体代码

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

/**
 * 复制目录
 */
public class Test1 {
    public static long begin = 0;
    public static long end = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要复制原文件的路径:");
        String s = sc.nextLine();
        System.out.println("请输入你要复制到的路径:");
        String s1 = sc.nextLine();
        System.out.println("请输入你要复制的文件夹的名称:");
        String name = sc.nextLine();

        String path = s + "\\" + name;
        String path1 = s1 + "\\" + name;


        File file = new File(path);
        File file1 = new File(path1);
        copyDir(file, file1);
        System.out.println(" 共用时:" + (end - begin)  + "ms");
        System.out.println("复制完成!");
    }

    /**
     * 复制文件
     * @param file
     * @param file1
     */
    public static void copyFile(File file, File file1) {
        try (FileInputStream fis = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(file1)) {
            byte[] bys = new byte[1024];
            int len;
            while ((len = fis.read(bys)) != -1) {
                fos.write(bys, 0, len);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 复制文件夹
     * @param file
     * @param file1
     */
    public static void copyDir(File file, File file1) {
        begin = System.currentTimeMillis();
        if (!file.isDirectory()) {
            return;
        }
        if (!file1.exists()) {
            file1.mkdirs();
        }
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isDirectory()) {
                copyDir(f, new File(file1.getPath(), f.getName()));
            } else if (f.isFile()) {
                copyFile(f, new File(file1.getPath(), f.getName()));
            }
        }
        end = System.currentTimeMillis();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java复制文件夹及文件到指定位置 的相关文章

随机推荐

  • VIM工具设置步骤

    VIM工具设置步骤入门 引子 找到配置文件 修改配置文件 引子 VIM作为常用的文本编辑器有很多可以设置项 比如我们打开一个文件以后在命令行模式输入set nu来显示行号 但是这个是针对当前打开的这个文件有效 有时候我们想对所有用vim打开
  • Integer. valueOf()的用法

    Integer valueOf 作用 将基本类型int转换为包装类型Integer 或者将String转换成Integer String如果为Null或 都会报错 Integer valueOf 方法实现如下 public static I
  • 用 ASTERISK 搭建自己的免费 VOIP 服务器

    服务器别闲着 博主又要给大家带来新的玩法咯 1 这里以 Debian 为例子 安装 Asterisk apt get update apt get install asterisk 2 预设置 Asterisk 修改 sip conf 和
  • chrome浏览器安装插件方法

    我的浏览器版本 99 0 4844 51 正式版本 64 位 之前收集安装方法 现在做个处理 实际上对于我的不行 但总有一款适合你 首先打开chrome 的设置 gt 更多工具 gt 扩展程序 开启开发者模式 1 直接把 crx文件拖拽到这
  • java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed

    2019独角兽企业重金招聘Python工程师标准 gt gt gt ssm框架报错 原因是事务配置在service spring的配置文件对应方法设置位read only true 解决办法 该方法是DML语句的方法 修改该方法的事务传播属
  • 专利申请过程中出现的20种状态,你都知道吗

    转自 https zhuanlan zhihu com p 32940506 专利申请过程中出现的20种状态 你都知道吗 从专利申请到专利驳回或者授权 会出现以下状态 归结起来 有以下一些 1 等待申请费 此状态表示 专利局已经受理该专利
  • java 读写中文文本

    读取中文文本 要设置gbk格式 该格式中文可以识别 英文也可以 reader new InputStreamReader new FileInputStream filename gbk 拓展 分词 分词时候 读取中文文本 TokenStr
  • java 实现常用后端分页

    背景说明 在实际开发中 基于数据库表结构进行SQL查询 如果要对结果进行分页 可以借助一些工具类 如 基于Mybatis的 工具类 PageHelper 但是 有时分页的对象是经过一些业务逻辑处理的列表 如 两个列表取了交集后 或者按照一定
  • 基于鸿蒙js框架实现的wearable五子棋软件

    我基于鸿蒙js框架开发了一个运行于wearable设备的五子棋软件 主要供大家交流学习使用 软件主要由三个page组成 主要逻辑在index中 其余用来显示输赢 鸿蒙os每个page都由一个css 一个js 一个hml组成 hml编程方式与
  • 配置pycharm解释器

    之前学习的时候下载的社区版本的pycharm 配置的解释器是conda3 8 过了好久以为电脑i没有python 所以又下载了python3 9 最近实习社区版本已经不足以满足日常工作 所以就下载了专业版本 但是配置出现了问题我以前的路径识
  • 通过一个无人机代码例程学会ardunio

    第一部分 关于接线 1 首选在接收机的任意一个空置插口引出一个vcc和GND 直接连接arduino 5v 和GND 这时你的arduino就和飞机连成了一套系统 可以共同工作了 2 接下来把接收机供给飞控的四根信号线从飞控上卸下 连接在a
  • Arthas 3.5.0版本发布,支持反编译打印行号和统一鉴权

    Arthas是Alibaba开源的Java诊断工具 深受开发者喜爱 Github https github com alibaba arthas 文档 https arthas aliyun com doc Arthas 最新发布了 3 5
  • Android 读取系统属性详解

    一 背景介绍 Android 系统属性主要有两种 SettingsProvider 和 SystemProperties 二 SettingsProvider详解 2 1 关于Android 设置 里的一些属性可以直接通过settings命
  • cookie

    package com kuang servlet import javax servlet ServletException import javax servlet http Cookie import javax servlet ht
  • 使用VS2010的nmake命令编译MakeFile流程

    使用 nmake的makefile是可以是用vs的nmake命令编译的 具体编译步骤如下 1 添加nmake和cl目录到环境变量 我的电脑 gt 属性 gt 高级系统设置 gt 环境变量 gt 系统变量 双击path 如下图所示 根据vs2
  • 【计算机科学】【2020.01】基于Python的能耗预测深度学习方法

    在一个我们除了增加日常生活用电而无所事事的社会里 能源消耗和相应的管理是一个重大问题 电力需求预测是电力系统运营商在电网管理中的重要组成部分 由于设计和确定合适的可再生能源系统和储能规模 预测特定家庭每日能源消耗的重要性也与最终用户有关 本
  • SQL的常用命令

    来都来了点一个赞在走吧 名称 作用 语法 avg 返回数值列的平均值 select avg column name from table name between 选取介于两个值之间的数据范围内的 值可以是数值文本或者日期 select c
  • 如何 接收消息服务器url,(读书笔记)网络是怎样连接的——浏览器生成消息...

    概览 本次探索之旅从用户在浏览器中输入网址 URL 开始 生成HTTP请求消息 浏览器的工作会从对用户输入的网址进行解析开始 浏览器如何解析网址是我们的第一个看点 然后浏览器会根据网址的含义来生成请求消息 而请求消息实际的样子就是我们的第二
  • 【Wiener、Weibull】来剩余寿命预测方法Wiener过程以及Weibull过程

    目录 1 软件版本 2 本算法理论知识 1 剩余寿命预测概述 2 Gamma过程 3 Wiener过程 4 Weibull过程
  • Java复制文件夹及文件到指定位置

    Java实现复制文件夹及文件 思路 1 首先创建一个复制文件夹的方法 复制文件夹并做判断 2 其次是创建一个复制文件夹中文件的方法 首先复制文件夹 判断是否是文件夹 再判断是否存在 不存在的要创建 复制文件夹 param file 原文件夹