zoukankan      html  css  js  c++  java
  • 根据时间删除指定文件夹下的文件

    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
        }
    一分辛苦一分才
  • 相关阅读:
    逆元
    C++快读
    最长单调上升子序列(LIS) O(nlogn)求法
    【简●解】巴厘岛的雕塑
    【简●解】学校食堂
    【简●解】[HNOI2005]星际贸易
    差分约束系统小结
    【简•解】花园
    最小生成树小结
    概率及期望DP小结
  • 原文地址:https://www.cnblogs.com/JoanLin-workNotes/p/10935328.html
Copyright © 2011-2022 走看看