一段 定时自动清理系统临时文件的 Java代码

/**
	 * 清理系统临时目录下,文件名为指定前缀的文件。
	 * @param filenamePrefix 文件名前缀
	 * @param minutes 几分钟执行一次清理操作
	 */
	public void cleanTempFile(String filenamePrefix,int minutes) {

		Timer timer = new Timer();
		timer.schedule(new TimerTask() {
			@Override
			public void run() {
				String tmpdir = System.getProperty("java.io.tmpdir");
				File dir = new File(tmpdir);
				String arr[] = dir.list();
				if (arr != null) {
					for (String fileName : arr) {
						if (fileName.startsWith("zuul-servo-metrics")) {
							deleteDir(new File(tmpdir + fileName));
						}
					}
				}
			}
			private boolean deleteDir(File dir) {
				try {
					if (dir.isDirectory()) {
						String[] children = dir.list();
						// 递归删除目录中的子目录下
						for (int i = 0; i < children.length; i++) {
							boolean success = deleteDir(new File(dir,children[i]));
							if (!success) {
								return false;
							}
						}
					}
					// 目录此时为空,可以删除
					return dir.delete();
				} catch (Exception e) {
					return false;
				}
			}
		}, 0, minutes * 60 * 1000);// 每5分钟执行一次
	}

猜你喜欢

转载自huangqiqing123.iteye.com/blog/2409166
今日推荐