diff --git a/src/Gpulse.WCT.DataAnalyzer.Core/Application/LocalIngestion/ParseService.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Application/LocalIngestion/ParseService.cs index dc7a128..6b2e1e7 100644 --- a/src/Gpulse.WCT.DataAnalyzer.Core/Application/LocalIngestion/ParseService.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Application/LocalIngestion/ParseService.cs @@ -20,6 +20,11 @@ public class ParseService private readonly ILogger _logger; private readonly int _batchSize; + /// + /// 支持的输入数据文件扩展名(大小写不敏感) + /// + private static readonly string[] SupportedExtensions = [".log", ".txt", ".dat"]; + public ParseService( WctMinerDbContext context, ScenarioService scenarioService, @@ -169,12 +174,16 @@ public class ParseService } var searchOption = recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly; - var logFiles = dirInfo.GetFiles("*.log", searchOption); + var dataFiles = dirInfo.EnumerateFiles("*", searchOption) + .Where(f => SupportedExtensions.Contains(f.Extension, StringComparer.OrdinalIgnoreCase)) + .OrderBy(f => f.Name) + .ToArray(); - _logger.LogInformation("发现 {FileCount} 个日志文件", logFiles.Length); + _logger.LogInformation("发现 {FileCount} 个数据文件({Extensions})", + dataFiles.Length, string.Join("/", SupportedExtensions)); var reports = new List(); - foreach (var file in logFiles) + foreach (var file in dataFiles) { var report = await ParseFileAsync(file.FullName, force); reports.Add(report);