当前位置:首页 > Java

java如何复制文件夹及文件

2026-02-05 11:09:53Java

使用 Files.copy 方法(Java NIO)

Java NIO 的 Files.copy 方法适合复制单个文件或空文件夹。对于非空文件夹,需递归处理子目录和文件。

import java.nio.file.*;

public static void copyFolder(Path source, Path target) throws IOException {
    Files.walk(source).forEach(srcPath -> {
        try {
            Path destPath = target.resolve(source.relativize(srcPath));
            Files.copy(srcPath, destPath, StandardCopyOption.REPLACE_EXISTING);
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
}

使用 Apache Commons IO 库

Apache Commons IO 的 FileUtils.copyDirectory 方法提供了更简洁的解决方案,需添加依赖:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

代码示例:

import org.apache.commons.io.FileUtils;

FileUtils.copyDirectory(new File("sourcePath"), new File("targetPath"));

递归手动实现

若需不依赖第三方库,可手动实现递归复制:

java如何复制文件夹及文件

import java.io.*;

public static void copyFolder(File source, File target) throws IOException {
    if (source.isDirectory()) {
        if (!target.exists()) target.mkdir();
        for (String file : source.list()) {
            copyFolder(new File(source, file), new File(target, file));
        }
    } else {
        try (InputStream in = new FileInputStream(source);
             OutputStream out = new FileOutputStream(target)) {
            byte[] buffer = new byte[1024];
            int length;
            while ((length = in.read(buffer)) > 0) {
                out.write(buffer, 0, length);
            }
        }
    }
}

注意事项

  • 目标文件夹需有写入权限。
  • 大文件建议使用缓冲流(如 BufferedInputStream)。
  • 符号链接需特殊处理,避免无限递归。
  • Java 7+ 推荐 NIO 方式,性能更优。

标签: 文件夹文件
分享给朋友:

相关文章

vue文件底层实现

vue文件底层实现

Vue 文件的底层实现 Vue 单文件组件(SFC,即 .vue 文件)的底层实现依赖于 Vue 的编译工具链,主要包括 @vue/compiler-sfc 和构建工具(如 Vite 或 Webpac…

vue实现预览各种文件

vue实现预览各种文件

实现文件预览功能的方法 在Vue中实现文件预览功能,可以通过多种方式实现,具体取决于文件类型。以下是常见的文件类型及其预览方法: PDF文件预览 使用pdf.js库可以实现PDF文件的预览。安装依赖…

react  如何创建文件

react 如何创建文件

创建 React 文件的基本方法 在 React 项目中,创建文件通常涉及组件文件、样式文件或工具文件。以下是常见操作方式: 手动创建文件 通过文件资源管理器或 IDE(如 VSCode)在项目目录…

mac上如何找到react文件夹

mac上如何找到react文件夹

使用 Finder 搜索 打开 Finder,在顶部菜单栏选择“前往”>“前往文件夹”(或使用快捷键 Command + Shift + G)。输入路径 ~/ 进入用户主目录,手动浏览项目文件夹…

react实现文件预览

react实现文件预览

文件预览实现方法 在React中实现文件预览功能通常需要根据文件类型(如图片、PDF、视频等)选择不同的技术方案。以下是几种常见文件类型的预览实现方式: 图片预览 使用URL.createObjec…

css文件怎么制作

css文件怎么制作

创建CSS文件的方法 新建一个纯文本文件,将文件后缀名改为.css。例如style.css。可以使用任何文本编辑器(如记事本、VS Code、Sublime Text等)创建和编辑该文件。 编写CS…