Java实现文件或文件夹的复制到指定目录实例

Java 实现文件或文件夹的复制到指定目录可以使用 NIO 的 Files 类,以下是实现一份文件的复制到目标文件夹的代码示例。

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileCopyDemo {

    public static void main(String[] args) throws IOException {
        String sourceFilePath = "source.txt"; // 源文件路径
        String targetDirPath = "target"; // 目标目录路径

        // 1. 检查目标目录是否存在,不存在则创建
        if (!Files.exists(Paths.get(targetDirPath))) {
            Files.createDirectories(Paths.get(targetDirPath));
        }

        // 2. 拼接目标文件路径
        Path sourcePath = Paths.get(sourceFilePath);
        String targetFilePath = targetDirPath + File.separator + sourcePath.getFileName();

        // 3. 复制文件到目标文件夹
        Files.copy(sourcePath, Paths.get(targetFilePath), StandardCopyOption.REPLACE_EXISTING);
    }

}

具体过程如下:

  1. 创建源文件的路径与目标目录的路径;
  2. 判断目标目录是否存在,不存在则创建;
  3. 解析源文件路径,获取文件名,为目标文件拼接路径,使用 Files.copy 方法完成文件复制操作。

如果要实现文件夹的复制,则需要使用递归遍历实现;以下示例实现从源文件夹复制到目标文件夹的代码:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

public class FolderCopyDemo {

    public static void main(String[] args) throws IOException {
        String sourceFolderPath = "source"; // 源文件夹路径
        String targetFolderPath = "target"; // 目标文件夹路径

        // 1. 检查目标目录是否存在,不存在则创建
        if (!Files.exists(Paths.get(targetFolderPath))) {
            Files.createDirectories(Paths.get(targetFolderPath));
        }

        // 2. 遍历源文件夹中的所有文件和子文件夹,并复制到目标文件夹
        Files.walk(Paths.get(sourceFolderPath)).forEach(sourcePath -> {
            String targetPath = sourcePath.toString().replace(sourceFolderPath, targetFolderPath);
            try {
                if (Files.isDirectory(sourcePath)) {
                    Files.createDirectories(Paths.get(targetPath));
                } else {
                    Files.copy(sourcePath, Paths.get(targetPath), StandardCopyOption.REPLACE_EXISTING);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
    }

}

代码实现过程如下:

  1. 创建源文件夹路径与目标文件夹路径;
  2. 如果目标文件夹不存在,则创建;
  3. 使用 Files.walk 遍历源文件夹中的所有文件及子文件夹,使用 Files.copy 来复制文件或文件夹到目标文件夹,如果当前正在处理的是一个子文件夹,则需要在目标文件夹中创建对应文件夹。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现文件或文件夹的复制到指定目录实例 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • SpringMVC 异常处理机制与自定义异常处理方式

    当使用 Spring MVC 开发应用时,异常处理是非常重要的一部分。由于操作系统错误、数据库错误等各种问题可能会导致应用程序出现异常,因此在应用程序中正确处理异常是重要的。本文将介绍 Spring MVC 中的异常处理机制及如何自定义异常处理方式。 SpringMVC 异常处理机制 Spring MVC 异常处理机制的核心是将异常抛到控制器的外部并处理。S…

    Java 2023年5月27日
    00
  • 关于Java跨域Json字符转类对象的方法示例

    下面我就针对“关于Java跨域Json字符转类对象的方法示例”的完整攻略,进行详细讲解,希望能够帮助到你。 1. 什么是跨域? 首先,我们需要明白什么是跨域。跨域是指在同一个浏览器中,一个网站的JavaScript代码试图去访问另一个网站的代码。 在Web安全领域中,浏览器出于安全考虑,禁止页面中的JavaScript代码访问其它域下的资源,包括Cookie…

    Java 2023年5月26日
    00
  • Java编程获取当前屏幕分辨率的方法示例

    下面我将详细讲解Java编程获取当前屏幕分辨率的方法示例的完整攻略。 步骤一:引入AWT库 AWT是Java提供的图形界面库,用于处理图形化界面相关的程序。在获取当前屏幕分辨率的过程中,需要用到该库中的Toolkit类,因此首先需要引入该库。 请在Java代码中加入以下语句: import java.awt.Toolkit; 步骤二:使用Toolkit类获取…

    Java 2023年5月26日
    00
  • spring boot 日志配置详解

    Spring Boot是一个快速开发框架,可以帮助开发人员快速构建Web应用程序。在开发过程中,日志记录是非常重要的,可以帮助开发人员快速定位和解决问题。本文将介绍Spring Boot的日志配置详解,并提供两个示例。 Spring Boot的日志配置 Spring Boot的日志配置非常灵活,可以根据需要进行配置。在默认情况下,Spring Boot使用L…

    Java 2023年5月15日
    00
  • 小程序实现授权登陆的解决方案

    小程序实现授权登录的解决方案是比较复杂的,需要涉及到小程序端和服务端两个方面。在授权登录的过程中,小程序端需要获取用户的授权信息,并将授权信息发送给服务端进行校验,服务端校验成功之后再将返回的用户信息返回给小程序端。以下是实现授权登录的完整攻略: 步骤一:获取用户授权 在小程序中调用 wx.login() 方法获取 code,这个 code 会在后续用来获取…

    Java 2023年5月23日
    00
  • 关于maven:pom文件的使用解析

    关于Maven:POM文件的使用解析 Maven是一个流行的Java项目构建工具,其中POM文件(Project Object Model)是核心概念之一。本文将介绍POM文件的基本知识和使用方法,帮助开发人员更好地管理项目依赖和构建过程。 什么是POM文件 POM文件是Maven项目的核心文件之一,它是一个XML文档,包含了项目的各种元数据和配置信息。其中…

    Java 2023年5月20日
    00
  • Java实现byte[]转List的示例代码

    实现byte[]转List可以使用Java内置的List和Arrays两个类来实现,以下是示例代码和详细攻略: 示例代码: import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ByteToListExample { public st…

    Java 2023年5月26日
    00
  • Spring Web MVC框架学习之配置Spring Web MVC

    下面是关于“Spring Web MVC框架学习之配置Spring Web MVC”的完整攻略,包含两个示例说明。 Spring Web MVC框架学习之配置Spring Web MVC Spring Web MVC是一个基于MVC模式的Web框架,可以帮助我们快速开发Web应用程序。本文将介绍如何配置Spring Web MVC框架。 添加依赖 首先,我们…

    Java 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部