using System;
using System.Configuration;
using System.IO;namespace CleanFile
{class Program{static void Main(string[] args){#region 删除曲线文件,测试可用//Console.Write("\n输入要操作的文件路径,回车结束!\n");DateTime dateNow = DateTime.Now;Console.WriteLine("清理开始:" + dateNow);//string folderPath = Console.ReadLine();//从控制台读入输入//DateTime targetDate = new DateTime(2023, 1, 1); // 设置目标日期(此处为2023年1月1日)DateTime targetDate = Convert.ToDateTime(ConfigurationManager.AppSettings["targetDate"].ToString()); // 设置目标日期(此处为2025年1月1日)string folderPath = ConfigurationManager.AppSettings["folderPath"].ToString();string fileExtension = ConfigurationManager.AppSettings["fileExtension"].ToString();DeleteFilesBeforeTargetDate(folderPath, targetDate, fileExtension);Console.WriteLine("清理完毕" + DateTime.Now + ",耗时:" + (DateTime.Now - dateNow).TotalSeconds + ",按回车退出!");Console.ReadLine();#endregion#region 移动曲线文件//if (args.Length == 0)//{// Console.WriteLine("命令行参数不能为空...");// Console.ReadKey();// return;//}//string folder = args[0];//if (!Directory.Exists(folder))//{// Console.WriteLine("输入的文件夹路径不存在...");// Console.ReadKey();// return;//}//Console.WriteLine("准备移动曲线文件...");//string[] subfolders = Directory.GetDirectories(folder);//int total = 0;//for (int i = 0; i < subfolders.Length; i++)//{// string[] files = Directory.GetFiles(subfolders[i], "*.xml");// total += files.Length;// Console.WriteLine($"当前文件夹【{subfolders[i]}】内文件数有{files.Length}个.");// foreach (var file in files)// {// string sub = File.GetLastWriteTime(file).ToString("yyyy-MM-dd");// string filenames = Path.GetFileName(file);// string foldr = Path.GetDirectoryName(file);// string newfoldr = foldr + "\\" + sub;// try// {// if (!Directory.Exists(newfoldr))// {// Directory.CreateDirectory(newfoldr);// }// File.Move(file, newfoldr + "\\" + filenames);// Console.WriteLine($"文件【{file}】已经移到新路径{sub}.");// }// catch (Exception ex)// {// Console.WriteLine(ex);// }// }//}//Console.WriteLine($"移动曲线文件工作已完成,共移动{total}个文件.");//Console.ReadKey();#endregion#region 删除曲线文件,测试可用if (args.Length == 0){Console.WriteLine("命令行参数不能为空...");Console.ReadKey();return;}string folder = args[0];//Console.Write("\n输入要操作的文件路径,回车结束!\n");//string folder = Console.ReadLine();//从控制台读入输入//if (!Directory.Exists(folder))//{// Console.WriteLine("输入的文件夹路径不存在...");// Console.ReadKey();// return;//}//Console.WriteLine("准备删除曲线文件...");//string[] subfolders = Directory.GetDirectories(folder);//获取当前目录下所有子文件夹目录//int total = 0;//for (int i = 0; i < subfolders.Length; i++)//遍历子文件夹目录//{// string[] files = Directory.GetFiles(subfolders[i], "*.xml");// total += files.Length;// Console.WriteLine($"当前文件夹【{subfolders[i]}】内文件数有{files.Length}个.");// foreach (var file in files)// {// //string sub = File.GetLastWriteTime(file).ToString("yyyy-MM-dd");// //string filenames = Path.GetFileName(file);// //string foldr = Path.GetDirectoryName(file);// //string newfoldr = foldr + "\\" + sub;// try// {// //if (!Directory.Exists(newfoldr))// //{// // Directory.CreateDirectory(newfoldr);// //}// //File.Move(file, newfoldr + "\\" + filenames);// //Console.WriteLine($"文件【{file}】已经移到新路径{sub}.");// DateTime TargetDate = new DateTime(2025, 1, 1); // 设置目标日期(此处为2025年1月1日)// if(File.GetLastWriteTime(file)< TargetDate)// {// File.Delete(file);// Console.WriteLine($"文件【{file}】已删除.");// }// }// catch (Exception ex)// {// Console.WriteLine(ex);// }// }//}//Console.WriteLine($"移动曲线文件工作已完成,共移动{total}个文件.");//Console.ReadKey();#endregion}/// <summary>/// 删除指定路径中指定日期前的文件/// </summary>/// <param name="folderPath">指定路径</param>/// <param name="targetDate">指定日期</param>static void DeleteFilesBeforeTargetDate(string folderPath, DateTime targetDate, string fileExtension){try{if (!Directory.Exists(folderPath)){Console.WriteLine("输入的文件夹路径不存在...");Console.ReadKey();return;}DirectoryInfo directory = new DirectoryInfo(folderPath);foreach (var file in directory.EnumerateFiles()){//if (file.LastWriteTime < targetDate && file.Extension == fileExtension)Console.WriteLine($"文件【{file.FullName}】,LastWriteTime【{file.LastWriteTime}】,targetDate【{targetDate}】");if (file.LastWriteTime < targetDate){Console.WriteLine("DeleteFilesBeforeTargetDate:" + DateTime.Now);File.Delete(file.FullName);Console.WriteLine($"文件【{file.FullName}】已删除.");}}foreach (var subdirectory in directory.EnumerateDirectories()){DeleteFilesBeforeTargetDate(subdirectory.FullName, targetDate, fileExtension);}}catch(Exception ex){Console.WriteLine($"发生异常【{ex.StackTrace.ToString()}】.");}}}
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" /></startup><appSettings><!--<add key="folderPath" value="G:\\test" />--><add key="folderPath" value="D:\Mes\Curve Files" /><add key="fileExtension" value=".xml" /><add key="targetDate" value="2023/07/01" /></appSettings>
</configuration>