一段超强的文本字符搜索代码(C#版本)

using System;
 using System.IO;
 using System.Linq;
 
 class Program
 {
     static void Main(string[] args)
     {
         SearchText(@"D:MyProgramCSharpASP.NET入门AspNetCore.Docsaspnetcore", "*.cshtml", "<link rel="icon"");   // 搜索文本可以没有<
     }
 
     static void SearchText(string searchPath, string searchFile, string searchText)    // 搜索文字不支持直接含有通配符
     {
         try
         {
             var files = from file in Directory.EnumerateFiles(searchPath, searchFile, SearchOption.AllDirectories)
                         from line in File.ReadLines(file)
                         where line.Contains(searchText)
                         select new
                         {
                             File = file,
                             Line = line
                         };
             foreach (var f in files)
             {
                 Console.WriteLine($"{f.File}  -->  {f.Line}");
             }
             Console.WriteLine($"{files.Count()} files found.");
         }
         catch (UnauthorizedAccessException uAEx)
         {
             Console.WriteLine(uAEx.Message);
         }
         catch (PathTooLongException pathEx)
         {
             Console.WriteLine(pathEx.Message);
         }
     }
 }
 
 // EnumerateFiles搜索字符串参数可以包含有效文本路径和通配符(*和?)的组合,但不支持正则表达式。

posted on 2022-09-29 14:14  manber  阅读(38)  评论(0)    收藏  举报

导航