public Dictionary<string, Lib.LogTable> Process(DateTime? startDate, DateTime? finishDate, string pattern) { Stopwatch sw = new Stopwatch(); sw.Start(); var dt = DateTime.Now; Dictionary<string, Lib.LogTable> result = new Dictionary<string, Lib.LogTable>(); if (IsLogFiles) { foreach (var file in LogsFiles) { result[file] = new Lib.LogTable(file, pattern); } } else { Dictionary<string, List<string>> LogFiles = new Dictionary<string, List<string>>(); foreach (var folder in LogsFolders) { LogFiles[folder] = Directory.GetFiles(folder, "*-????????-????.log") .Where(l => !startDate.HasValue || !finishDate.HasValue || (startDate.HasValue && finishDate.HasValue && l.IsFileDateOk(startDate.Value, finishDate.Value))) .ToList(); foreach (var file in LogFiles[folder]) { result[file] = new Lib.LogTable(file, pattern); } } } return result; }
public Dictionary<string, Lib.LogTable> Process(DateTime? startDate, DateTime? finishDate, string pattern) { var dt = DateTime.Now; Dictionary<string, List<string>> LogFiles = new Dictionary<string, List<string>>(); Dictionary<string, Lib.LogTable> result = new Dictionary<string, Lib.LogTable>(); var tempDir = String.Format(TempFilesDirNamePattern, UserFolder, dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, dt.Millisecond); Directory.CreateDirectory(tempDir); foreach (var folder in LogsFolders) { LogFiles[folder] = Directory.GetFiles(folder, "*-????????-????.log") .Where(l => !startDate.HasValue || !finishDate.HasValue || (startDate.HasValue && finishDate.HasValue && l.IsFileDateOk(startDate.Value, finishDate.Value))) .ToList(); foreach (var file in LogFiles[folder]) { var dstFileName = tempDir + "\\" + new System.IO.FileInfo(file).Name; System.IO.File.Copy(file, dstFileName); try { result[file] = new Lib.LogTable(dstFileName, pattern); } finally { System.IO.File.Delete(dstFileName); } } } System.IO.Directory.Delete(tempDir); return result; }