A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

说明:本人技术有限,代码中可能存在不够合理的地方,望大家积极的给予点评,源码如下:
package com.dyn.itheima.test4;
import java.io.File;
import java.util.Timer;
import java.util.TimerTask;
public class DeleteFloder {
public static void main(String[] args) {
  // 指定删除的目录路径
  final String path = "F:\\目录";
  // 创建定时器
  Timer timer = new Timer();
  // 创建任务
  TimerTask task = new TimerTask() {
   @Override
   public void run() {
    // TODO Auto-generated method stub
    deleteFloder(new File(path));
   }
  };
  // 2秒后执行删除文件夹任务
  timer.schedule(task, 2000);
}
protected static void deleteFloder(File src) {
  // 遍历判断是文件夹、还是文件,以便进行相应的处理
  for (File file : src.listFiles()) {
   if (file.isDirectory()) {
    deleteFloder(file);
   } else {
    deleteFile(file);
   }
  }
  // 文件夹已经为空,删除文件夹
  System.out.println("删除文件夹: " + src.getName());
  src.delete();
}
private static void deleteFile(File file) {
  // TODO Auto-generated method stub
  System.out.println("删除文件: " + file.getName());
  file.delete();
}
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

4 个回复

倒序浏览
就是用了定时器之后,程序不会自己停止了
回复 使用道具 举报
as604049322 发表于 2015-6-4 10:35
就是用了定时器之后,程序不会自己停止了

嗯,昨天我也在想这个问题,不知大神有何高招没?
回复 使用道具 举报
经济 发表于 2015-6-4 10:38
嗯,昨天我也在想这个问题,不知大神有何高招没?

可以改成这样:
  1. public static void main(String[] args) {
  2.                 // 指定删除的目录路径
  3.                 final String path = "F:\\目录";
  4.                 // 创建定时器
  5.                 Timer timer = new Timer();
  6.                
  7.                 class Task1 extends TimerTask {
  8.                         Timer t;
  9.                         public Task1(Timer t) {
  10.                                 this.t = t;
  11.                         }
  12.                         @Override
  13.                         public void run() {
  14.                                 deleteFloder(new File(path));
  15.                                 t.cancel();
  16.                         }
  17.                 }
  18.                 // 创建任务
  19.                 TimerTask task = new Task1(timer);
  20.                 // 2秒后执行删除文件夹任务
  21.                 timer.schedule(task, 2000);
  22.         }
复制代码
回复 使用道具 举报

嗯,很好,刚才我在练习时出现了Connection reset异常,在我新发地帖子中,望大神不吝赐教
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马