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


    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
        }
    一分辛苦一分才
  • 相关阅读:
    python爬虫(十六) -IndexError: list index out of range
    python爬虫(十五) 豆瓣电影爬虫
    python爬虫(十四)
    python爬虫(十三) lxml模块
    python爬虫(十二) XPath语法
    python爬虫(十一) session
    python爬虫(十) requests使用代理ip
    python爬虫(九) requests库之post请求
    python爬虫(八) requests库之 get请求
    PXE+kickstart网络安装CentOS7.4系统及过程中各种报错
  • 原文地址:https://www.cnblogs.com/JoanLin-workNotes/p/10935328.html
Copyright © 2020-2023  润新知