C# -linux下Log的自动删除

C# -linux下Log的自动删除

对log的操作其实也就两部分,找到log,判断log生成时间是否超出规定时间,是则删除,下面是代码实现,大家如果有相似问题,可以借鉴一下,也欢迎在品论区留下更好的解决方案。

public static void ClearLog()
        {             
            string logPath = AppDomain.CurrentDomain.BaseDirectory+ "Logs"; //获取到更目录下的logs文件夹          
            if (!Directory.Exists(logPath))
            {
                return;
            }
            DirectoryInfo folder = new DirectoryInfo(logPath);
            FileSystemInfo[] files = folder.GetFileSystemInfos(); //获取文件夹
            if (files == null)
            {
                return;
            }
            foreach (FileSystemInfo file in files)
            {
                string path_log_url = file.FullName;
               
                if (!Directory.Exists(path_log_url))
                {
                    continue;
                }
                DirectoryInfo folder_base = new DirectoryInfo(path_log_url);
                FileInfo[] files_base = folder_base.GetFiles("*.txt");  //获取.txt文件
                foreach (var file_txt in files_base)
                {                  
                    //获取文件创建时间
                    DateTime fileCreateTime = file_txt.LastWriteTime;
                    //获取当前时间
                    DateTime now = DateTime.Now;
                    int createMonth = fileCreateTime.Month; 
                    int nowMonth = now.Month;
                    int distance = nowMonth - createMonth;
                    distance = distance >= 0 ? distance : (distance + 12); 时间差
                    if (distance < 3)
                    {
                        //小于三个月不删除
                        continue;
                    }
                    try
                    {
                        File.Delete(file_txt.FullName);
                    }
                    catch
                    {
                        throw new Exception("删除日志文件出现异常");
                    }
                }
                
            }

在Linux上winds上测试都能完成Log的删除。

原文地址:https://www.cnblogs.com/Baron-King/p/13791975.html