public List <string> getReqrFileList(DateTime _startTime, DateTime _endTime, string path) { List <string> fileName = new List <string>(); DirectoryInfo fileFolder = new DirectoryInfo(path); foreach (DirectoryInfo YearFolder in fileFolder.GetDirectories()) //在保存pcap文件的目录下查找符合条件的文件 { if (_startTime.Year < Convert.ToInt16(YearFolder.Name) && _endTime.Year > Convert.ToInt16(YearFolder.Name)) // 判断文件夹的年份在筛选条件起始和终止年份之间,该文件夹下所有文件都满足条件 { foreach (DirectoryInfo MonthFolder in YearFolder.GetDirectories()) { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) //遍历该文件目录下的所有pcap文件 { string s = file.ToString(); //当前pcap文件名 string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); //去掉后缀的文件名 name = name.Replace(":", ":"); //格式修改 DateTime nameToTime = Convert.ToDateTime(name); //将文件名转换为时间 if (IsInTime(_startTime, _endTime, nameToTime)) //时间筛选 { fileName.Add(filePath); } } } } } else if (_startTime.Year == Convert.ToInt16(YearFolder.Name) && _endTime.Year > Convert.ToInt16(YearFolder.Name)) // 年份文件夹的年份等于筛选的起始年份,小于终止年份 { foreach (DirectoryInfo MonthFolder in YearFolder.GetDirectories()) { if (Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) == _startTime.Month) //月份文件夹的月份等于筛选的起始月份 { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { if (Convert.ToInt16(DayFolder.Name.Substring(0, 2)) >= _startTime.Day) //日期文件夹日期大于筛选的起始日期,满足条件 { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) { string s = file.ToString(); string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); name = name.Replace(":", ":"); DateTime nameToTime = Convert.ToDateTime(name); if (IsInTime(_startTime, _endTime, nameToTime)) { fileName.Add(filePath); } } } } } if (Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) > _startTime.Month) // 月份文件夹的月份大于筛选的起始月份,文件夹下所有文件满筛选条件 { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) { string s = file.ToString(); string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); name = name.Replace(":", ":"); DateTime nameToTime = Convert.ToDateTime(name); if (IsInTime(_startTime, _endTime, nameToTime)) { fileName.Add(filePath); } } } } } } else if (_startTime.Year < Convert.ToInt16(YearFolder.Name) && _endTime.Year == Convert.ToInt16(YearFolder.Name)) ///年份文件夹的年份大于筛选的起始年份,等于于终止年份 { foreach (DirectoryInfo MonthFolder in YearFolder.GetDirectories()) { if (Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) == _endTime.Month) //月份文件夹的月份等于筛选终止月份 { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { if (Convert.ToInt16(DayFolder.Name.Substring(0, 2)) <= _endTime.Day) //日期文件夹日期小于筛选的终止日期,满足条件 { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) { string s = file.ToString(); string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); name = name.Replace(":", ":"); DateTime nameToTime = Convert.ToDateTime(name); if (IsInTime(_startTime, _endTime, nameToTime)) { fileName.Add(filePath); } } } } } if (Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) < _endTime.Month) //月份文件夹的月份小于筛选终止月份,文件夹下所有文件满筛选条件 { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) { string s = file.ToString(); string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); name = name.Replace(":", ":"); DateTime nameToTime = Convert.ToDateTime(name); if (IsInTime(_startTime, _endTime, nameToTime)) { fileName.Add(filePath); } } } } } } else if (_startTime.Year == Convert.ToInt16(YearFolder.Name) && _endTime.Year == Convert.ToInt16(YearFolder.Name)) ///年份文件夹的年份等于筛选的起始年份,也等于终止年份 { foreach (DirectoryInfo MonthFolder in YearFolder.GetDirectories()) { if (Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) < _endTime.Month && Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) > _startTime.Month) //月份文件夹的月份大于筛选的起始月份,小于终止月份,该文件夹下所有文件满足 { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) { string s = file.ToString(); string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); name = name.Replace(":", ":"); DateTime nameToTime = Convert.ToDateTime(name); if (IsInTime(_startTime, _endTime, nameToTime)) { fileName.Add(filePath); } } } } if (Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) == _endTime.Month && Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) > _startTime.Month) //月份文件夹的月份大于筛选的起始月份,等于终止月份 { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { if (Convert.ToInt16(DayFolder.Name.Substring(0, 2)) <= _endTime.Day) // 日期文件夹的日期小于筛选的终止日期,满足条件 { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) { string s = file.ToString(); string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); name = name.Replace(":", ":"); DateTime nameToTime = Convert.ToDateTime(name); if (IsInTime(_startTime, _endTime, nameToTime)) { fileName.Add(filePath); } } } } } if (Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) < _endTime.Month && Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) == _startTime.Month) //月份文件夹的月份等于筛选的起始月份,小于终止月份 { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { if (Convert.ToInt16(DayFolder.Name.Substring(0, 2)) >= _startTime.Day) //日期文件夹的日期大于筛选的起始日期,满足条件 { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) { string s = file.ToString(); string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); name = name.Replace(":", ":"); DateTime nameToTime = Convert.ToDateTime(name); if (IsInTime(_startTime, _endTime, nameToTime)) { fileName.Add(filePath); } } } } } if (Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) == _endTime.Month && Convert.ToInt16(MonthFolder.Name.Substring(0, 2)) == _startTime.Month) //筛选条件为同一月份 { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { if (Convert.ToInt16(DayFolder.Name.Substring(0, 2)) <= _endTime.Day && Convert.ToInt16(DayFolder.Name.Substring(0, 2)) >= _startTime.Day) //日期文件夹的日期应满足大于筛选起始日期小于筛选终止日期 { foreach (FileInfo file in DayFolder.GetFiles("*.pcap")) { string s = file.ToString(); string filePath = file.FullName; string name = Path.GetFileNameWithoutExtension(s); name = name.Replace(":", ":"); DateTime nameToTime = Convert.ToDateTime(name); if (IsInTime(_startTime, _endTime, nameToTime)) { fileName.Add(filePath); } } } } } } } else { } } return(fileName); }
public void DeleteOverdueData() { DateTime dtNow = DateTime.Now; DateTime delTime = dtNow - timeSpan; try { string cfgDirPath = Path + @"\pcap"; DirectoryInfo DirYear = new DirectoryInfo(cfgDirPath); foreach (DirectoryInfo YearFolder in DirYear.GetDirectories()) { if (Convert.ToInt16(YearFolder.Name) < delTime.Year) { DeleteFolder(YearFolder.FullName); } else if (Convert.ToInt16(YearFolder.Name) == delTime.Year) { foreach (DirectoryInfo MonthFolder in YearFolder.GetDirectories()) { if (Convert.ToInt16(MonthFolder.Name) < delTime.Month) { DeleteFolder(MonthFolder.FullName); } else if (Convert.ToInt16(MonthFolder.Name) == delTime.Month) { foreach (DirectoryInfo DayFolder in MonthFolder.GetDirectories()) { if (Convert.ToInt16(DayFolder.Name) < delTime.Day) { DeleteFolder(DayFolder.FullName); } else if (Convert.ToInt16(DayFolder.Name) == delTime.Day) { DeleteFileInDayFolder(DayFolder, delTime); } } } } } } } catch (Exception e) { String fileLogName = System.IO.Path.Combine(System.IO.Path.Combine(Application.StartupPath, "ErrorLogData"), "Monitor" + DateTime.Now.ToString("yyyy_MM_dd", CultureInfo.CurrentCulture) + ".log"); if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(fileLogName))) { System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(fileLogName)); } System.IO.StreamWriter log = new System.IO.StreamWriter(new System.IO.FileStream(fileLogName, System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.ReadWrite)); System.Text.StringBuilder buff = new System.Text.StringBuilder(); buff.Append(String.Format(CultureInfo.CurrentCulture, "-----------------------------start({0})------------------------------------\n", DateTime.Now.ToString("o", System.Globalization.CultureInfo.CurrentCulture))); buff.Append(e.Message + "\n"); buff.Append("---------------------------------------End---------------------------------------\n"); log.WriteLine(buff.ToString()); log.Flush(); log.Close(); } }