package com.cavaness.quartzbook.chapter3;
import java.io.File;
import java.io.FileFilter;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 作业:找出指定目录下所有.xml文件的相关信息
* @author Kevin
*
*/
public class ScanDirectoryJob implements Job {
private static Log log = LogFactory.getLog(ScanDirectoryJob.class);
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
// 记录作业的名字和启动的时间
JobDetail jobDetail = context.getJobDetail();
String jobName = jobDetail.getName();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
log.info(jobName + ",启动时间:" + simpleDateFormat.format(new Date()));
// 作业的相关配置放在JobDataMap对象里,获取目录信息
JobDataMap jobDataMap = jobDetail.getJobDataMap();
String directoryName = jobDataMap.getString("SCAN_DIRECTORY");
// 验证作业是否有目录信息的配置
if (directoryName == null) {
throw new JobExecutionException("目录信息没有配置!");
}
File directory = new File(directoryName);
// 验证目录信息配置正确与否
if (!directory.exists()) {
throw new JobExecutionException(directoryName + "目录不存在");
}
// 提取目录下所有的.xml文件
FileFilter xmlFileFilter = new FileExtensionFileFilter(".xml");
File[] xmlFiles = directory.listFiles(xmlFileFilter);
// 验证目录下是否有.xml文件
if (xmlFiles == null || xmlFiles.length <= 0) {
log.info("目录" + directoryName + "没有.xml文件");
return;
}
// 输出指定目录下所有.xml文件的相关信息
for (File xmlFile : xmlFiles) {
log.info(xmlFile + "的信息如下: 1.文件绝对路径:" + xmlFile.getAbsoluteFile() + ";2.文件的大小:" + xmlFile.length());
}
}
}
1.作业:找出指定目录下所有.xml文件的相关信息
最新推荐文章于 2022-02-15 16:46:08 发布