首页 > 其他分享 >递归复制文件夹

递归复制文件夹

时间:2022-12-08 21:26:42浏览次数:35  
标签:newPath files String 递归 复制 oldPath File 文件夹

package com.simon.myfinal;
 
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.FileOutputStream;
  import java.io.InputStream;
  
  /**
   * Created by Rainmer on 2015/6/28.
  */
 public class FileCopy {
     public static void main(String[] args) {
         String oldPath = "D:/bower";
         String newPath = "D:/bowerCopy";
         File dirNew = new File(newPath);
         dirNew.mkdirs();//可以在不存在的目录中创建文件夹
         directory(oldPath, newPath);
         System.out.println("复制文件夹成功");
     }
 
     /**
      * 复制单个文件
      * @param oldPath 要复制的文件名
      * @param newPath 目标文件名
      */
     public static void copyfile(String oldPath, String newPath) {
         int hasRead = 0;
         File oldFile = new File(oldPath);
         if (oldFile.exists()) {
             try {
                 FileInputStream fis = new FileInputStream(oldFile);//读入原文件
                 FileOutputStream fos = new FileOutputStream(newPath);
                 byte[] buffer = new byte[1024];
                 while ((hasRead = fis.read(buffer)) != -1) {//当文件没有读到结尾
                     fos.write(buffer, 0, hasRead);//写文件
                 }
                 fis.close();
             } catch (Exception e) {
                 System.out.println("复制单个文件操作出错!");
                 e.printStackTrace();
             }
         }
     }
 
     /**
      *
      * @param oldPath 要复制的文件夹路径
      * @param newPath 目标文件夹路径
      */
     public static void directory(String oldPath, String newPath) {
         File f1 = new File(oldPath);
         File[] files = f1.listFiles();//listFiles能够获取当前文件夹下的所有文件和文件夹
         for (int i = 0; i < files.length; i++) {
             if (files[i].isDirectory()) {
                 File dirNew = new File(newPath + File.separator + files[i].getName());
                 dirNew.mkdir();//在目标文件夹中创建文件夹
                 //递归
                 directory(oldPath + File.separator + files[i].getName(), newPath + File.separator + files[i].getName());
             } else {
                 String filePath = newPath + File.separator + files[i].getName();
                 copyfile(files[i].getAbsolutePath(), filePath);
             }
 
         }
     }
 }

标签:newPath,files,String,递归,复制,oldPath,File,文件夹
From: https://www.cnblogs.com/sisiyibailiu/p/16967312.html

相关文章

  • java中的递归机制
    本文主要讲述java中的递归机制。示例1,递归代码如下:publicclassRecursion01{publicstaticvoidmain(String[]args){Tt=newT();t.test......
  • oracle中的树型递归的应用
     比如在做一个新闻导航栏时,经常要这样比如:首页>>A>>A1>>A2这样,就是比如点A2这个分类,要显示A2的父亲们的名字,在ORACLE中,很容易办到,主要使用的是STARTWITH...CONNECTBYP......
  • 在win7下与linux虚拟机Ubuntu建立共享文件夹
      使用vmware(vmwareworkstation9.0.2)下sharedfolders功能实现vmware中文件传输,可参考vmware帮助中settingupsharedfolders。 1.安装vmtoolsforlinux: 选......
  • Redis 主从复制、哨兵模式、Cluster集群
    一、Redis主从复制1.1、什么是主从复制如图:将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由......
  • python 中的递归演示
    递归函数递归就是一个函数在它本身内调用它自己。执行递归函数将反复调用自己,每一次调用就会进入新的一层,递归函数必须要有结束条件。当函数一直递推直到遇到墙后但返......
  • 归并排序(递归+非递归)
    (文章目录)1.归并排序递归1.基本思想主要使用了<fontcolor="blue"size="3">分治思想即大事化小,</font>先使每个子序列有序,子使序列段有序,将两个有序表合并成一......
  • SQLServer CTE 递归查询限制递归级数(完成执行语句前已用完最大递归)
    SQLServerCTE递归查询限制递归级数(完成执行语句前已用完最大递归)介绍如果递归CTE组合不正确,可能会导致无限循环。例如,如果递归成员查询定义对父列和子列返回相同的......
  • Kylin-文件夹共享(NFS)
    服务端部署NFS复查完成部署NFS服务端(server.kylin.com)在服务端创建/nfsdata目录,在/nfsdata目录下创建kylin01、kylin02文件夹/nfsdata/kylin01共享文......
  • MySQL主从复制与读写分离
         一、MySQL主从复制1.1MySQL的复制类型基于SQL语句的复制(STATEMENT默认)在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语......
  • 用递归函数实现树形结构转化为列表数据
    题目:  将下面的树结构的数据转化为列表的数据。[{"name":"北京市","code":"11","children":[{"name":"市辖区","code":"1101","children":[{"name":"......