删除文件夹内文件及其子文件夹(Java)

发布于 2020-07-15  3346 次阅读


主函数可以进行修改,写了三个重载函数,可以选择是否删除子文件夹,可以延时删除,也可以定时删除(需要一直挂起线程)。

package try1;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
public class Try1 {
    static String a;
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        a=input.next();
        int b=input.nextInt();
        //String time=input.next();
        File file=new File(a);
        delete(file,b);
        input.close();
    }

            static void delete(File file,int turn) {
                if(turn==0) {
                    File[] files = file.listFiles();
                    for (int i = 0; i < files.length; i++) {   
                        if (files[i].isFile()) {  
                            files[i].delete();
                        } 
                    }
                }
                else {
                if (file.exists()) {
                if (file.isFile()) {
                file.delete();
                } 
                else if (file.isDirectory()) {
                File[] files = file.listFiles();
                for (int i = 0;i < files.length;i ++) {
                delete(files[i],1);
                }
                file.delete();
                }
                }
                File nfile=new File(a);
                if(!nfile.exists()) {
                    nfile.mkdir();
                }
                }}
            static void delete(File file,int turn,int sleep) {
                try   
                {   
                Thread.currentThread();
                Thread.sleep(sleep); 
                }   
                catch(Exception e){}  
                 delete(file,turn);
            }
            static void delete(File file,int turn,String time) {
                while(true) {
                    try {
                        Thread.sleep(1000);
                        SimpleDateFormat now=new SimpleDateFormat("HH:mm");
                        if(now.format(new Date()).equals(time)){
                            delete(file,turn);
                        }
                    }catch(Exception e){}  
            }
            }
}

输入格式如(选择定时删除函数):
D:\111
0
13:00
那么不关闭此程序的话,每天13点D盘111文件夹内所有文件(不包括子文件夹)都会被删除。


华科菜鸡计科学生