当前位置: 首页 > article >正文

ASP.NET MVC-System.Threading.Timer-定时清理文件夹

环境:
win10, .NET 6.0,IIS


问题描述

假设我有一个页面,要求上传一个文件,后台收到后存储文件,然后读取、解析、计算,最后将计算结果返回前端,用于绘制图像。但是后台存储的文件,我只想保存24h内的,所以需要考虑自动清理文件。

实现

修改Global.asax.cs文件:

using System.Threading;

public class MvcApplication : System.Web.HttpApplication
{
    private static Timer _timer;
    public static string DirectoryPath { get; private set; }
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        // 设置定时器,每隔1小时执行一次
        DirectoryPath = HostingEnvironment.MapPath("~/XXXX");
        _timer = new Timer(DeleteOldFiles, null, TimeSpan.Zero, TimeSpan.FromHours(1));
    }

    private void DeleteOldFiles(object state)
    {
        
        var files = Directory.GetFiles(DirectoryPath);

        foreach (var file in files)
        {
            var fileInfo = new FileInfo(file);
            if (fileInfo.LastWriteTime < DateTime.Now.AddHours(-24))
            {
                fileInfo.Delete();
            }
        }
    }
    
}

复杂的定时任务可以选择Hangfire 或 Quartz.NET。


http://www.kler.cn/a/501631.html

相关文章:

  • Spring Boot 2 学习全攻略
  • 【ArcGIS微课1000例】0137:色彩映射表转为RGB全彩模式
  • Web前端:JavaScript标识符与变量
  • Uniapp仿ChatGPT Stream流式输出(非Websocket)
  • 使用 WPF 和 C# 绘制图形
  • 【git】-2 分支管理
  • 【linux】vi编辑文件及readonly文件修改读写权限方法
  • 使用 Linux tracepoint、perf 和 eBPF 跟踪数据包
  • 算法-拆分数位后四位数字的最小和
  • 【LeetCode: 240. 搜索二维矩阵 II + 指针 + 遍历】
  • 【Ubuntu与Linux操作系统:十一、Java与Android应用开发】
  • 基于微信小程序的书籍销售系统设计与实现(LW+源码+讲解)
  • 微信小程序map组件所有markers展示在视野范围内
  • 深入理解 Python 的多进程编程 (Multiprocessing)
  • uniapp(接入智谱Ai完整示例)
  • 【git】-3 github创建远程仓库,上传自己的项目,下载别人的项目
  • ubuntu官方软件包网站 字体设置
  • client-go 的 QPS 和 Burst 限速
  • [Flutter] 使用ScrollController配合EasyRefresh实现列表预加载:在还未滑动到底部时加载下一页数据
  • 35_Lua基本语法
  • 学技术学英语:ELK是什么
  • 谷歌浏览器的音视频播放设置与优化
  • Mysql--运维篇--日志管理(连接层,SQL层,存储引擎层,文件存储层)
  • 如何使用商品详情API接口数据解析示例API接口URL
  • Kubernetes 基本概念
  • springboot图片上传存储至本地,返回前端地址回显