2016-10-10 2 views
1

Ich möchte Wort oder Zeichenfolge in mehrere Dateien im Verzeichnis suchen. zum Beispiel "Error", "Warning" Wenn eine Datei drei Wörter enthält, sollte sie Nachrichten ausgeben.alle Dateien im selben Verzeichnis.Suche Zeichenfolge in mehreren Dateien mit C#

Mit diesem Code kann ich ein Wort in einer einzigen Datei suchen, aber ich möchte alle d-Datei, die im Verzeichnis verfügbar sind suchen.

 List<string> found = new List<string>(); 
     string line; 
     using (StreamReader file = new StreamReader(textBox1.Text)) 
     { 
      while ((line = file.ReadLine()) != null) 
      { 
       if (line.Contains("Error: 1")) 
       { 
        found.Add(line); 
     MessageBox.Show("Error Found"); 
       } 
      } 
     } 

Antwort

1
Dictionary<string, string> found = new Dictionary<string, string>(); 
string line; 
bool textFound = false; 
foreach (string filename in Directory.GetFiles("path-to-directory")) 
{ 
    using (StreamReader file = new StreamReader(filename)) 
    { 

     while ((line = file.ReadLine()) != null) 
     { 
      if (line.Contains("Error: 1")) 
      { 
       found.Add(line,filename); 
       MessageBox.Show("Error Found"); 
       textFound = true; 
      } 
      if (line.Contains("Warning: 1")) 
      { 
       found.Add(line,filename); 
       MessageBox.Show("Warning Found"); 
       textFound = true; 
      } 
     }   
    } 

} 
if(!textFound) 
      MessageBox.Show("Your message here"); 
+0

aber hier möchte ich zwei Wörtern suchen ... wenn überhaupt ein Wort in einer beliebigen Datei gefunden, dann sollte es Nachricht drucken. –

+0

@ user1753911 hinzugefügt Prüfung für zweites Wort zu –

+0

können wir sonst anstelle der zweiten IF verwenden? –

0

Sie regelmäßig expresion verwenden können:

Regex.Match(line, @"\b(Error: 1|Warning: 1|Others)\b"); 
Verwandte Themen