文件夹的拷贝

通过使用Java的文件字节流拷贝文件或文件夹,file1->file2

注意:

  • 无论是文件还是文件夹,都可以实现拷贝
  • file2文件夹内部的原内容继续保存且不变
  • 若文件夹file2不存在则会自动创建
  • 该函数通过递归调用实现
  • 由于使用的是文件字节流,所以无论是文本文件还是图片或视频都可以实现拷贝
java 复制代码
public static void copyDirectory(File file1,File file2) {	//拷贝函数:file1->file2
        if (!file1.exists() | file1 == null) {
            return;
        }
        if (!file2.exists()) {
            file2.mkdirs();
        }
        String name = file1.getName();
        File file3 = new File(file2.getAbsoluteFile() +"\\"+ name);

        if (file1.isFile()) {
            try (FileInputStream inputStream = new FileInputStream(file1);
                 FileOutputStream outputStream = new FileOutputStream(file3)) {
                byte[] bytes = new byte[1024];
                int len;
                while ((len = inputStream.read(bytes)) != -1) {
                    outputStream.write(bytes, 0, len);
                }
                return;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        file3.mkdir();
        File[] files = file1.listFiles();
        for (int i = 0; i < files.length; i++) {	//递归调用
            copyDirectory(files[i], file3);
        }

    }

测试

java 复制代码
public static void main(String[] args) {	//测试
        File file = new File("target");
        File file2 = new File("target2");	//文件夹target2的原内容不变
        copyDirectory(file,file2);
    }
相关推荐
duapple3 小时前
Golang基于反射的ioctl实现
开发语言·后端·golang
Dxy12393102164 小时前
Python 条件语句详解
开发语言·python
字节源流5 小时前
关于maven的依赖下不下来的问题
java·maven
pjx9875 小时前
服务间的“握手”:OpenFeign声明式调用与客户端负载均衡
java·运维·spring·负载均衡
prinrf('千寻)6 小时前
MyBatis-Plus 的 updateById 方法不更新 null 值属性的问题
java·开发语言·mybatis
老华带你飞6 小时前
实习记录小程序|基于SSM+Vue的实习记录小程序设计与实现(源码+数据库+文档)
java·数据库·spring boot·小程序·论文·毕设·实习记录小程序
m0_555762906 小时前
Qt缓动曲线详解
开发语言·qt
在未来等你7 小时前
互联网大厂Java求职面试:AI与大模型应用集成及云原生挑战
java·微服务·ai·kubernetes·大模型·embedding·spring ai
源码技术栈7 小时前
SaaS基于云计算、大数据的Java云HIS平台信息化系统源码
java·大数据·云计算·云his·his系统·云医院·区域his
编程、小哥哥7 小时前
互联网大厂Java面试:从Spring Boot到微服务架构的技术深挖
java·spring boot·redis·微服务·prometheus·面试技巧