利用定时器也可以实现应用程序缓存的定时删除,每隔一定的时间就自动清除指定缓存目录下的缓存文件。例如,每隔10分钟删除D:\kankan(迅雷播放器的缓存目录)下的文件。代码如下:

  • 1-1 定时删除缓存文件的例子
 
  
  1. import java.io.File; 
  2. import java.util.Calendar; 
  3. import java.util.Date; 
  4. import java.util.Timer; 
  5. import java.util.TimerTask; 
  6. public class FileDeleter extends TimerTask { 
  7.     private static final String targetPath1 = "D:\\kankan"
  8.     private static final String targetPath2 = "D:\\kankan\\VaCache"
  9.     private Timer timer = new Timer(); 
  10.      
  11.     private Calendar calendar = Calendar.getInstance(); 
  12.     public static void main(String[] args) { 
  13.         FileDeleter fm = new FileDeleter(); 
  14.         fm.start(); 
  15.     } 
  16.     private static void delFiles(String[] dir) { 
  17.         for (int i = 0; i < dir.length; i++) { 
  18.             File f = new File(dir[i]); 
  19.             File[] files = null
  20.             if (f.exists()) { 
  21.                 files = f.listFiles(); 
  22.                 for (int j = 0; j < files.length; j++) { 
  23.                     files[j].delete(); 
  24.                 } 
  25.             } 
  26.         } 
  27.     } 
  28.     public void start() { 
  29.         //每隔10分钟删除一次 
  30.         timer.scheduleAtFixedRate(thisnew Date(), 1000 * 10 * 60);//10分钟转化为毫秒        
  31.     } 
  32.     public void run() {         
  33.         delFiles(new String[] { targetPath1, targetPath2 });     
  34.         //在每天的23:30后不再执行
  35.         if(calendar.get(Calendar.HOUR_OF_DAY) ==23 && calendar.get(Calendar.MINUTE) == 30){ 
  36.             this.cancel(); 
  37.         } 
  38.     } 

这样若执行该程序就不用再手动的去删除缓存文件,该程序会定时地自动清除缓存文件。哦,貌似QQ电脑管家里边有“扫一扫”功能(在电脑空闲时自动扫描,定期清理电脑垃圾),那么。这个定期清理电脑垃圾 是否可以这样来实现呢?感兴趣的朋友可以思考一下。(比如先判断CPU的利用率,根据CPU的利用率判断电脑当前是否处于空闲状态,是的话,比如删除回收站,的垃圾)(注册表的,临时安装文件这个显然无法实现哦)。