利用定时器也可以实现应用程序缓存的定时删除,每隔一定的时间就自动清除指定缓存目录下的缓存文件。例如,每隔10分钟删除D:\kankan(迅雷播放器的缓存目录)下的文件。代码如下:
- 1-1 定时删除缓存文件的例子
- import java.io.File;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.Timer;
- import java.util.TimerTask;
- public class FileDeleter extends TimerTask {
- private static final String targetPath1 = "D:\\kankan";
- private static final String targetPath2 = "D:\\kankan\\VaCache";
- private Timer timer = new Timer();
- private Calendar calendar = Calendar.getInstance();
- public static void main(String[] args) {
- FileDeleter fm = new FileDeleter();
- fm.start();
- }
- private static void delFiles(String[] dir) {
- for (int i = 0; i < dir.length; i++) {
- File f = new File(dir[i]);
- File[] files = null;
- if (f.exists()) {
- files = f.listFiles();
- for (int j = 0; j < files.length; j++) {
- files[j].delete();
- }
- }
- }
- }
- public void start() {
- //每隔10分钟删除一次
- timer.scheduleAtFixedRate(this, new Date(), 1000 * 10 * 60);//10分钟转化为毫秒
- }
- public void run() {
- delFiles(new String[] { targetPath1, targetPath2 });
- //在每天的23:30后不再执行
- if(calendar.get(Calendar.HOUR_OF_DAY) ==23 && calendar.get(Calendar.MINUTE) == 30){
- this.cancel();
- }
- }
- }
这样若执行该程序就不用再手动的去删除缓存文件,该程序会定时地自动清除缓存文件。哦,貌似QQ电脑管家里边有“扫一扫”功能(在电脑空闲时自动扫描,定期清理电脑垃圾),那么。这个定期清理电脑垃圾 是否可以这样来实现呢?感兴趣的朋友可以思考一下。(比如先判断CPU的利用率,根据CPU的利用率判断电脑当前是否处于空闲状态,是的话,比如删除回收站,的垃圾)(注册表的,临时安装文件这个显然无法实现哦)。
转载于:https://blog.51cto.com/020618/1183495