怎样把一个文件夹内容,复制到另一个文件夹。

时间:2022-10-24 21:04:02

package com.xieer.CopyFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class FileDemo {
    
    public static void copyFolder(String oldPath, String newPath)throws Exception{
            
            File  o = new File(oldPath);
            File  n = new File(newPath);
            
            n.mkdirs();  //生新的成指定的目录
            String[] childs = o.list();  //把原文件夹内的文件列成一个String数组
            
            File temp=null; //申明一个临时的变量来储存这个路径
            
        if (childs !=null) {//来判断childs的目录是不是为空
            for (int i = 0; i < childs.length; i++) {
                
//                System.out.println(childs[i]);
                
                if (oldPath.endsWith(File.separator)) {  //首先判断路径末尾\\(两种情况一种是文件夹 ,另外一种是文件)
                    temp = new File(oldPath+childs[i]);
                }else{
                    temp = new File(oldPath+File.separator+childs[i]);
                }
                
                if(temp.isFile()){  //如果是文件录入新文件中
                    FileInputStream fis = new FileInputStream(temp);
                    //使用字节流
                    FileOutputStream fos = new FileOutputStream(newPath+File.separator+temp.getName());
                    int num;
                    while((num = fis.read())!=-1 ){
                        fos.write(num);
                    }
                    fos.close();
                    fis.close();
                }
                if (temp.isDirectory()) {  //如果是文件夹===》递归调用
                    copyFolder(oldPath+File.separator+childs[i],newPath+File.separator+childs[i]);
                    
                }
            }
            
        }