java 定时任务删除文件
时间: 2023-10-24 21:09:36 浏览: 57
要实现Java定时任务删除文件的功能,可以使用TimerTask类和Timer类来设置定时任务并调用删除文件的方法。
首先,需要定义一个清理文件的方法clean,该方法接收一个文件夹作为参数,并递归地清理文件夹内的文件。具体代码如下所示:
```java
public static void clean(File file) {
File[] files = file.listFiles();
if (Objects.nonNull(files)) {
for (File f : files) {
if (f.isDirectory()) {
clean(f);
}
f.delete();
System.out.println(f.getName() + "已清理!!!");
}
}
}
```
然后,可以使用TimerTask类和Timer类来设置定时任务。首先,定义一个定时任务方法clock,该方法接收一个文件夹作为参数,并设置定时任务来调用clean方法。具体代码如下所示:
```java
public static void clock(File file) {
// 设置清理时间
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 26);
calendar.set(Calendar.SECOND, 0);
Timer timer = new Timer();
// 设置定时任务
timer.schedule(new TimerTask() {
@Override
public void run() {
clean(file);
}
}, calendar.getTime(), 24 * 60 * 60 * 1000);
}
```
在该代码中,首先使用Calendar类设置定时任务的触发时间为每天的12:26:00。然后,创建一个Timer对象,并使用schedule方法来设置定时任务。该定时任务是一个匿名内部类,重写了run方法,在run方法中调用clean方法来清理文件。最后一个参数24 * 60 * 60 * 1000表示定时任务的间隔为24小时。
要使用以上代码实现定时删除文件的功能,只需要调用clock方法,并传入要删除的文件夹作为参数即可。例如:
```java
File folder = new File("要删除的文件夹路径");
clock(folder);
```
这样,每天的12:26:00定时任务会自动触发,清理指定文件夹中的文件。
参考资料:
引用的代码
[3] 引用的代码