根据时间删除指定文件夹下的文件

1.获取文件夹路径

2.定义一个计时器

3.定义锁

4.删除符合规则的文件

5.解锁

    /// <summary>   
    /// 根据时间来删除指定文件夹下的文件
    /// </summary>
    class Program
    {
        #region 私有静态字段定义
        private static string _directoryPath;
        private static readonly object Lock = new object();
        private static Timer timer; 
        #endregion

        #region 主方法
        static void Main(string[] args)
        {
            // 获取文件夹路径
            _directoryPath = GetDirectoryPath();

            timer = new Timer(10);

            timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
            timer.Start();
            Console.Read();
        } 
        #endregion

        #region 私有静态方法
        /// <summary>
        ///  获取文件夹路径
        /// </summary>
        /// <returns></returns>
        private static string GetDirectoryPath()
        {
            // 获取当前基目录
            string baseDirectory = System.AppDomain.CurrentDomain.BaseDirectory;

            // 使用appdomain获取当前应用程序集的执行目录
            string dir = AppDomain.CurrentDomain.BaseDirectory;

            // 使用path获取当前应用程序集的执行目录的上级的上级目录
            dir = Path.GetFullPath("../..");
            //Console.WriteLine("dir:" + dir);

            string imgDirPath = string.Format(@"{0}\\{1}", dir, "imgs");
            return imgDirPath;
        }

        static void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            // 执行完删除操作后解锁
            lock (Lock)
            {
                DeleteFile(_directoryPath);
            }
        }

        /// <summary>
        /// 删除文件夹下符合规则的文件。
        /// </summary>
        /// <param name="directoryPath">文件夹路径</param>
        private static void DeleteFile(string directoryPath)
        {// 获取指定目录下的文件集合
            var files = GetFilePaths();

            // 获取当前日期月份
            var currentMonth = DateTime.Now.Month;

            var filePaths = new List<string>();
            foreach (var file in files)
            {
                // 获取文件的创建时间
                var creationTime = File.GetCreationTime(file);
                //var lastWriteTime = File.GetCreationTime(file);

                // 如果是一个月之前的数据
                if (creationTime.Month <= currentMonth - 1)
                {
                    // 删除该文件
                    File.Delete(file);
                    Console.WriteLine("删除文件:" + file);
                }
            }
        }

        /// <summary>
        /// 根据文件夹路径取的文件名称集合。
        /// </summary>
        /// <param name="directoryPath"></param>
        /// <returns></returns>
        private static string[] GetFilePaths()
        {
            return Directory.GetFiles(_directoryPath);
        } 
        #endregion
    }

 

转载于:https://www.cnblogs.com/JoanLin-workNotes/p/10935328.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值