星辰吖丶
怎么做定时删除文件夹删除后重新生成文件夹

比如我想在 23时59分钟的时候删除文件夹 删除后顺便重新生成

2000000
本帖最后由 2000000 于 2022-12-10 17:07 编辑

创建一个类 extends java.util.TimerTask 实现 run 方法,run 方法内写您想做的事
new Timer().schedule(new TimerTask(), Data);


FallingCreams
Bukkit.GetSchedule.runTaskLater(Plugin,()->{},delay)

teddyxlandlee
FallingCreams 发表于 2022-12-10 18:48
Bukkit.GetSchedule.runTaskLater(Plugin,()->{},delay)

你给出的是 Bukkit Scheduler 按照刻计算的
楼主想要的应该是 Java Timer 按照现实生活中的秒计算的

MC你的游戏
这很简单

循环获取 本地时间

判断时间 是不是到了23时59分  如果真 删除文件夹 并创建新的文件夹

teddyxlandlee
MC你的游戏 发表于 2022-12-11 22:17
这很简单

循环获取 本地时间

你这不卡吗?还得单独开个线程。
楼上说的 java.util.TimerTask 不乏一个很好的思路。

MC你的游戏
teddyxlandlee 发表于 2022-12-15 11:53
你这不卡吗?还得单独开个线程。
楼上说的 java.util.TimerTask 不乏一个很好的思路。 ...

TimerTask 就不用线程了吗

无谓狗蛋
本帖最后由 无谓狗蛋 于 2023-2-23 13:32 编辑

是这样的,直接创建period为1天的循环任务貌似不太行,毕竟你的服务器并不能达到严格的TPS=20。如楼上所说创建一个循环任务,让period为40/50s(留一些容错)  然后去判断Date是不是23时59分,这样既保证他是只执行一次而又不频繁

  1. public void run() {
  2.         Calendar time = Calendar.getInstance();
  3.         if (time.get(Calendar.HOUR_OF_DAY) == XX && time.get(Calendar.MINUTE) == XX) {//要执行的代码}}
复制代码