Java递归复制、删除文件夹

递归删除指定文件夹

package org.westos.demo01;

import java.io.File;

public class DeleteDir {
    static String Dirname="F:\\IDEA";

    public static void main(String[] args) {
        File sf = new File(Dirname);
        deleteDir(sf);
        System.out.println("删除文件夹"+Dirname+"成功");
    }
    private static void deleteDir(File sf) {
        File[] filearray=sf.listFiles();
        for (File file : filearray) {
            if(file.isFile()){
                file.delete();
            }else {
                deleteDir(file);
            }
        }
    }
}

递归复制文件夹

package org.westos.demo01;

import java.io.*;

public class DeleteDir {
    static String sourceDirname="F:\\DTLFolder";
    static String copyDirname="D:\\DTLFolder";

    public static void main(String[] args) {
        File sf = new File(sourceDirname);
        File tf = new File(copyDirname);
        if(!tf.exists()){
            tf.mkdir();
        }
        copyDir(sf,tf);
        System.out.println("复制文件夹"+sourceDirname+"成功");
    }

    private static void copyDir(File sf, File tf) {
        File[] sfiles = sf.listFiles();
        for (File sfile : sfiles) {
            if(sfile.isFile()){
                copyfile(sfile,tf);
                System.out.println("复制"+sf.getName()+"文件成功");
            }else {
                File newDir = new File(tf.getAbsoluteFile(),sfile.getName());
                newDir.mkdirs();
                copyDir(sfile,newDir);
                System.out.println("复制"+newDir.getName()+"文件夹成功");
            }
        }
    }

    private static void copyfile(File sfile, File tf) {
        try (
                FileInputStream in = new FileInputStream(sfile.getAbsoluteFile());
                FileOutputStream out=new FileOutputStream(tf.getAbsoluteFile()+"\\"+sfile.getName())
                )
        {
            byte[] buff = new byte[1024 * 8];
            int hasRead=0;
            while ((hasRead=in.read(buff))>0){
                out.write(buff);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }


}

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/84260834