zoukankan      html  css  js  c++  java
  • 定时删除服务器产生的临时文件

    导入导出的时候经常会产生一些临时文件,通常我们会建一个临时文件夹来存储这些临时文件,

    但随着时间这些临时文件会越来越多,所以有必要做一个定时清除。

    思路比较简单,首先建立一个定时器,这个定时器定时执行一个删除临时文件的方法即可。

    在Global.asax建立定时器,并调用DelTempFile自定义类中的删除临时文件方法。

    View Code
     1 System.Timers.Timer _deleteTempFile;
    2
    3 void Application_Start(object sender, EventArgs e)
    4 {
    5 //在应用程序启动时运行的代码
    6 _deleteTempFile = new System.Timers.Timer(1000 * 60 * 1);
    7 _deleteTempFile.Elapsed += new System.Timers.ElapsedEventHandler(OnTimeEvent_DelTempFile);
    8 _deleteTempFile.Enabled = true;
    9
    10 }
    11
    12 void OnTimeEvent_DelTempFile(object sender,System.Timers.ElapsedEventArgs e)
    13 {
    14 DelTempFile.Delete_TempFile(AppDomain.CurrentDomain.BaseDirectory + "Temp_Down", 0, "*");
    15 _deleteTempFile.Interval = 1000 * 60 * 5;
    16 _deleteTempFile.Enabled = true;
    17 }

    在自定义类中实现删除临时文件的方法,代码如下:

    View Code
     1 /// <summary>
    2 /// 删除临时文件
    3 /// </summary>
    4 /// <param name="path">删除的文件的路径</param>
    5 /// <param name="date">删除某一个时间点以前的文件</param>
    6 /// <param name="fileType">文件类型</param>
    7 public static void Delete_TempFile(string path,int datePoint,string fileType)
    8 {
    9 System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(path);
    10 DateTime time = DateTime.Now.AddDays(-datePoint);
    11
    12 //该目录存在且有临时文件则进行删除处理
    13 if (dirInfo.Exists && dirInfo.GetFiles().Length > 0)
    14 {
    15 System.IO.FileInfo[] files = dirInfo.GetFiles();
    16
    17 for (int i = 0; i < files.Length; i++)
    18 {
    19 if (files[i].Exists)
    20 {
    21 try
    22 {
    23 if (fileType == "*")
    24 {
    25 //将该文件设置为临时文件
    26 System.IO.File.SetAttributes(path + "\\" + files[i].Name, System.IO.FileAttributes.Temporary);
    27 //删除指定的文件
    28 System.IO.File.Delete(path + "\\" + files[i].Name);
    29 }
    30 else
    31 {
    32 if (files[i].Extension.Equals("." + fileType))
    33 {
    34 //将该文件设置为临时文件
    35 System.IO.File.SetAttributes(path + "\\" + files[i].Name, System.IO.FileAttributes.Temporary);
    36 //删除指定的文件
    37 System.IO.File.Delete(path + "\\" + files[i].Name);
    38 }
    39 else
    40 {
    41 continue;
    42 }
    43 }
    44 }
    45 catch(System.IO.IOException ex)
    46 {
    47 throw ex;
    48 }
    49 }
    50 }
    51 }
    52 }

    -----------------------------------------------------------旨在学习 欢迎交流------------------------------------------------------------

  • 相关阅读:
    关于C#中Environment.OSVersion判断操作系统及Win10上的问题
    C#各种数组直接的数据复制/转换
    移位操作<<和>>,是逻辑数字上的移动(和大端小端无关)
    log4net学习笔记
    链接错误——无法解析的外部符号 ConvertStringToBST
    当Thread.Sleep的暂停时间参数设置过小时,精度很差的解决方法
    Python发送邮件
    Python使用HTMLTestRunner运行所有用例并产生报告
    pandas学习笔记
    Python requests模块做接口测试
  • 原文地址:https://www.cnblogs.com/willpan/p/2302305.html
Copyright © 2011-2022 走看看