Java中拷贝目录以文件

一、进行拷贝的前期工作

        1、面向对象化

        准备拷贝源、拷贝目标以及拷贝的方法。

        2、实现拷贝的方法

        第一步:运用方法递归获取源目录下的所有子目录,进行判断,如果是文件,方法结束。

        // 获取源下面的子目录
        File[] files = srcFile.listFiles();

         通过递归,获取所有文件

            copyDir(file,destFile);

        第二步:获取所有文件的(包括目录和文件)的绝对路径,进行对目标目录的多级创建。

        例如:
        D:\Users\cwy\Desktop\JAVA\Java项目    ----->   源目录

        E:\a\b\c\d\Users\cwy\Desktop\JAVA\Java项目  ------->  目标目录

         获取源目录路径:

String srcDir = file.getAbsolutePath();

        需要进行对源目录路径的截取:

String destDir = "E:\\a\\b\\c\\d\\" + srcDir.substring(3);

        为了保证路径的动态变化:

String d = destFile.getAbsolutePath();
String destDir = (d.endsWith("\\") ? d : d + "\\") + srcDir.substring(3);

        创建多级目录:

                File newFile = new File(destDir);
                // 创建多级目录
                if (!newFile.exists()) {
                    newFile.mkdirs();
                }

 注意:

1、在创建多级目录的时候电脑中不能存在与源目录相同的起始文件名,否则会创建不成功。

2、在使用进行字符串拼接路径操作的时候,需要动态路径。如果是在电脑某个盘的根目录下,不会出现路径出错的情况,如果不是在跟目录下,就会出错。

        第三步:如果源目录是是一个文件,就进行文件的拷贝,一边读一边写,在创建FileOutputStream对象的时候,需要传入截取的源目录路径和在电脑某个盘下的路径。

String path = (destFile.getAbsolutePath().endsWith("\\") ? destFile.getAbsolutePath() : destFile.getAbsolutePath() + "\\") + srcFile.getAbsolutePath().substring(3);
FileOutputStream fileOutputStream = new FileOutputStream(path);

二、实现拷贝

                byte[] bytes = new byte[1024 * 1024];
                int readCount = 0;
                while((readCount = fileInputStream.read(bytes)) != -1){
                    fileOutputStream.write(bytes,0,readCount);
                }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值