题目:
完成一个文件夹扫描器,要求定时每天下午6点准时清理指定目录中的内容(Timer&TimerTask&File)
代码实现:
package com.softeem.j2106.example;
import java.io.File;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
/**
* @author admin
* 2021/7/24
*/
public class Exp01 {
/**
* 删除指定目录中的所有子文件或子目录
* @param dir
*/
public static void del(File dir){
//列出当前目录下的所有文件或子目录
File[] files = dir.listFiles();
if(files != null){
for (int i = 0; i <files.length ; i++) {
//如果File对象是目录,则递归删除
if(files[i].isDirectory()){
del(files[i]);
}
//删除文件或目录
if(files[i].delete()){
System.out.println("删除"+files[i].getName()+"成功!");
}
}
}
}
public static void main(String[] args) {
//时间间隔(24小时)
long preiod = 24*60*60*1000L;
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY,12);
c.set(Calendar.MINUTE,25);
c.set(Calendar.SECOND,55);
System.out.println("任务已启动。。。");
File dir = new File("D:/课程资料/tempFile");
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("开始删除");
del(dir);
}
}, c.getTime(), preiod);
}
}