Java如何复制目录_Java基础教程系列

编程教程 > Java (2072) 2024-11-26 14:39:04
Java如何复制目录,Java基础教程系列,如果要将目录及其包含的所有子文件夹和文件从一个位置复制到另一个位置,请使用下面的代码,该代码使用递归遍历目录结构,然后使用Files.copy()函数复制文件。

文件夹复制实例

在此示例中,我将c:\temp下的所有子目录和文件复制到新位置c:\tempNew。
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
 
public class DirectoryCopyExample
{
    public static void main(String[] args) throws IOException
    {
        //源目录
        File sourceFolder = new File("c:\\temp");
         
        //目标目录
        File destinationFolder = new File("c:\\tempNew");
 
        //调用复制
        copyFolder(sourceFolder, destinationFolder);
    }
    /**
     * 此功能以递归方式将所有子文件夹和文件从sourceFolder复制到destinationFolder
     * */
    private static void copyFolder(File sourceFolder, File destinationFolder) throws IOException
    {
        //Check if sourceFolder is a directory or file
        //If sourceFolder is file; then copy the file directly to new location
        if (sourceFolder.isDirectory())
        {
            //Verify if destinationFolder is already present; If not then create it
            if (!destinationFolder.exists())
            {
                destinationFolder.mkdir();
                System.out.println("Directory created :: " + destinationFolder);
            }
             
            //Get all files from source directory
            String files[] = sourceFolder.list();
             
            //Iterate over all files and copy them to destinationFolder one by one
            for (String file : files)
            {
                File srcFile = new File(sourceFolder, file);
                File destFile = new File(destinationFolder, file);
                 
                //递归调用复制子目录
                copyFolder(srcFile, destFile);
            }
        }
        else
        {
            //使用文件复制工具进行复制
            Files.copy(sourceFolder.toPath(), destinationFolder.toPath(), StandardCopyOption.REPLACE_EXISTING);
            System.out.println("File copied :: " + destinationFolder);
        }
    }
}
上方代码运行结果:
Directory created :: c:\tempNew
File copied :: c:\tempNew\testcopied.txt
File copied :: c:\tempNew\testoriginal.txt
File copied :: c:\tempNew\testOut.txt

 

提示:使用Files.copy()方法,可以复制目录。 但是,目录内的文件不会被复制,因此即使原始目录包含文件,新目录也为空。
同样,如果目标文件存在,则复制将失败,除非指定了REPLACE_EXISTING选项。


 

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Java如何复制目录,Java基础教程系列,如果要将目录及其包含的所有子文件夹和文件从一个位置复制到另一个位置,请使用下面的代码,该代码使用递归遍历目录结构,然后使用Files.copy()函数...
Java基础多线程之主线程等待子线程结束,Java基础编程之多线程入门学习篇。主要讲解几种方法来实现Java多线程中主线程等待子线程结束的最快方式。
Java基础JVM中堆和栈理解,收集各大网站各大牛人的语录,在Java中,内存主要分为两种,一种是栈(stack)内存,另一种就是堆内存(heap)(某些情况下说的堆栈内存是指栈内存)。
在这篇快速文章中,我们将介绍使用标准框架 - JSR 380(也称为Bean Validation 2.0)来验证Java bean的基础知识。当然,在大多数应用程序中验证用户输入是超常见的需求...
java基础编程中float/double类型的正确比较方法
Java正则表达式基础使用及常见正则符号说明,Java正则使用基础参考代码:package org.xqlee.utils.regular;import jav
java 以http client的post/get方式访问指定urlimport java.io.BufferedReader;import java.io.
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Java原生实现RSA非对称加加密,源码参考:import java.io.BufferedReader;import java.io.File;import
每个Java学习者都会遇到10 + 1个常见错误,java 初学者常见十大潜在错误
问题描述idea启动maven的JavaFX项目报错:Exception in Application start method java.lang.reflect.InvocationTarg...
java使用apache.commons.net.ftp工具实现FTP文件上传下载import java.io.BufferedInputStream;impo
Vert.x java 入门,Vert.x这个框架在常规的web业务开发中估计还不是很成熟。但是了解了他的一些原理我觉得可以有一番作为。今天主要简单讲解下eclipse Vert.x是什么有什么...
SpringMVC框架是一个java里面非常轻量级的mvc框架之一,与spring框架同源,整合方便快捷.