首页 > 技术文章 > java io之指定时间递归删除指定目录

neuhao 2017-03-01 18:09 原文

通过标题,可以看出主要用到了包括io流、定时器、递归在内的知识

所要删除的文件夹为"Demo",如图,

package 定时器;  
  
import java.io.File;  
import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Date;  
import java.util.Timer;  
import java.util.TimerTask;  
  
/* 
 * 定时器:可以在指定的时间内做某件事情,还可以重复做某件事情 
 * Timer和TimerTask两个类 
 * Timer:定时 
 * TimerTask:任务 
 */  
//创建类,继承自TimerTask  
class DeleteFile extends TimerTask {  
    // 重写run()方法  
    public void run() {  
        File srcFolder = new File("Demo");  
        delFolderFile(srcFolder);  
    }  
  
    private void delFolderFile(File srcFolder) {  
        File[] files = srcFolder.listFiles();  
        if (files != null) {  
            for (File file : files) {// 遍历文件夹  
                if (file.isDirectory()) {// 如果是文件夹  
                    delFolderFile(file);// 递归  
                } else {// 如果是文件,就删除  
                    System.out.println(file.getName() + ":" + file.delete());  
                }  
            }  
            System.out.println(srcFolder.getName() + ":" + srcFolder.delete());  
        }  
    }  
}  
  
public class DelFileTimer {  
    public static void main(String[] args) throws ParseException {  
        // 创建定时器对象  
        Timer timer = new Timer();  
        // 制定删除时间  
        String string = "2017-03-01 16:03:00";  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        Date date = sdf.parse(string);  
        // 安排指定的任务在指定的时间开始执行。  
        timer.schedule(new DeleteFile(), date);  
    }  
}  

运行结果:

 

b.txt:true
fos.txt:true
namee.txt:true
person.txt:true
file:true
fos.txt:true
namee.txt:true
person.txt:true
Demo:true

推荐阅读