Java:利用FileInputStream和FileOutputSteam实现目录复制

问题描述

利用File 和 FileInputStream 和FileOutputStream实现目录复制

这里我就复制我的项目的IO文件夹

基本思路

利用递归实现目录复制,详细情况见代码

代码如下

package com.lordbao.test;

import java.io.*;

/**
 * @Author Lord_Bao
 * @Date 2020/9/6 19:50
 * @Version 1.0
 *
 *   将IO目录下的所有文件和目录都复制到IOBAK目录下
 *
 * 1.判断IOBAK目录是否存在
 *      显然 IO目录肯定是存在的,而IOBAK目录则不一定存在
 *      所以需要判断IOBAK目录是否存在
 *
 *      1.首先判断是否存在一个叫IOBAK的文件或是目录   即destFile.exists()
 *        如果不存在,则进行递归创建IOBAK目录,为什么是递归创建呢?
 *        因为目标目录可能是  xxx/yyy/IOBAK这样的参数,为了程序健壮性,采用递归创建
 *      2.如果存在,则需要进一步判断是不是文件  即destFile.isFile
 *        如果是文件,由于同名无法创建,那么目标目录必须改为另外一个名字,比如IOBAK(1)。然后递归创建目标目录
 *        注意,这里不再考虑IOBAK(1)还存在重名的情况
 *
 *     其实第1步,自己不要乱设置目标目录就行了。
 *
 * 2.关于递归函数的参数以及递归终止条件分析如下
 *     2.1递归参数
 *     首先,第一个参数肯定是等待被复制的目录 即 File sourceFile
 *     当然这里传入 等待被复制的目录的路径也可以,没什么区别  即  String sourceFilePath
 *
 *     其次,第二个参数是第一个参数 File sourceFile下的文件或目录将被复制的目录路径   即  String destPath
 *
 *     2.2终止条件
 *     当sourceFile目录下的都是文件时,递归终止
 */
public class TestCopyDirectoryDemo {
   

    public static void main(String[] args) {
   
          //等待被复制的源目录路径
          String sourceDirPath="IO";
          //目标目录路径
          String destDirPath="IOBAK";

          File sourceFile = new
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值