ASP.NET MVC 启动定时任务删除某一文件夹下面的全部文件

1.通过程序包管理器控制台来安装Quartz.Net组件:Install-Package Quartz

2.新建一个类命名为 ReportJob: IJob
using Quartz;
using System.IO;
public void Execute(IJobExecutionContext context)
        {
            var reportDirectory = string.Format("~/ZIP/");
            reportDirectory = System.Web.Hosting.HostingEnvironment.MapPath(reportDirectory);

            //获取文件夹中所有文件
            if (Directory.GetFileSystemEntries(reportDirectory).Length > 0)
            {
                //遍历文件夹中所有文件
                foreach (string file in Directory.GetFiles(reportDirectory))
                {
                    //文件己存在
                    if (File.Exists(file))
                    {
                        FileInfo fi = new FileInfo(file);
                        //判断当前文件属性是否是只读
                        if (fi.Attributes.ToString().IndexOf("ReadyOnly") >= 0)
                        {
                            fi.Attributes = FileAttributes.Normal;
                        }
                        //删除文件
                        File.Delete(file);
                    }
                }
                //删除文件夹
          //      Directory.Delete(reportDirectory);
            }

         //   throw new NotImplementedException();
        }
3.新建一个类命名为 ReportJobScheduler
using Quartz;
using Quartz.Impl;

  public static void Start()
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
            scheduler.Start();
            IJobDetail job = JobBuilder.Create<ReportJob>().Build();
            ITrigger trigger = TriggerBuilder.Create()
              .WithIdentity("triggerName", "groupName")
              .WithSimpleSchedule(t =>
                t.WithIntervalInSeconds(5) //设置多少秒执行一次
                 .RepeatForever())
                 .Build();

            scheduler.ScheduleJob(job, trigger);
        }
4.在 Gloabl.asax 启动方法中添加启动任务
  protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            //启动定时任务
            ReportJobScheduler.Start();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值