java 文件夹下所有文件快速拷贝到另外一个文件夹

在开发过程中,遇到需要拷贝文件夹的需求。网上大部分人的做法是遍历文件夹下每一个文件然后逐个拷贝。已验证效率比较地下。遂搜了一下是否有开源的项目已经实现了该功能。

apache基金会有一个开源jar包commons-io已经实现了该功能。

maven依赖

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

可以在maven中央仓库(https://mvnrepository.com)中查找commons-io就能找到。

实现文件夹拷贝功能很简单:

org.apache.commons.io.FileUtils.copyDirectory(sourcePackageFile,destinationPackageFile);

可以实现原文件夹到目标文件夹的拷贝工作。

测试结果:

     1、文件夹拷贝300M左右可以在3到4秒之间完成(本机windows10,固态硬盘,8G内存)

     2、如果目标文件夹存在着和原文件夹同名的文件,则目标文件夹内容全部被覆盖

     3、如果目标文件夹中存在着原文件夹没有的文件,则目标文件夹会保留该文件(建议如果目标文件夹每次复制都要全部覆盖原来的操作)

例如:1文件夹下有a ,b 文件    2文件夹下有a文件,c文件

将1拷贝到2下。则2文件夹下有a,b,c三个文件。其中a文件发生了覆盖

猜你喜欢

转载自blog.csdn.net/uncle_david/article/details/80397304