2016-06-30 4 views
0

Ich habe ein Programm, das manuell Dateien in einem Ordner durchläuft und nach Schlüsselwörtern sucht, die Ihnen sagen, welche Datei sie hat.Manuell eingeben, wonach gesucht werden soll

class Program 
{ 
    static void Main() 
    { 
     string input = ""; 

     Console.WriteLine("Where? "); 
     input = Console.ReadLine(); 
     LoopedData(input); 
     Console.ReadLine(); 
    } 

    static void LoopedData(string path) 
    { 
     string[] files; 
     string[] directories; 
     string lineToFind = keyword; 
     files = Directory.GetFiles(path); 
     foreach (string file in files) 
     { 
      int line = 1; 
      using (var reader = new StreamReader(file)) 
      { 
       // read file line by line 
       string lineRead; 
       while ((lineRead = reader.ReadLine()) != null) 
       { 
        if (lineRead.Contains(lineToFind)) 
        { 
         Console.WriteLine("File {0}, line: {1}", file, lineRead); 
         Console.ReadLine(); 
        } 
        else 
        { 
         Console.WriteLine(" "); 
        } 
        line++; 
       } 
      } 
      Console.WriteLine("Finished....."); 
      Console.ReadLine(); 
      //Console.WriteLine(file); 
      // look for string here 
     } 

     directories = Directory.GetDirectories(path); 
     foreach (string directory in directories) 
     { 
      // Process each directory recursively 
      LoopedData(directory); 
     } 
    } 

} 

konnte ich manuell eingeben, die in der Suche Ordner, aber ich Schwierigkeiten habe eine ähnliche Art und Weise bei der Schaffung es für das Schlüsselwort zu tun. Ich habe versucht, es in der Hauptklasse zu referenzieren, ohne Erfolg. Ich brauche ein frisches Paar Augen.

Jede Suche Ich versuche nicht geholfen enden Ergebnisse ergeben

Antwort

1

Es scheint, dass Sie bereits wissen, was zu tun ist. Du machst es richtig für den Pfad. Um die keyword von dem Benutzer zu erhalten, tun genau das Gleiche wie für den Weg:

static void Main() 
{ 
    string path = ""; 
    string keyword = ""; 

    Console.WriteLine("Where? "); // read path 
    path = Console.ReadLine(); 
    Console.WriteLine("What? "); // read keyword 
    keyword = Console.ReadLine(); 
    LoopedData(input, keyword); 
    Console.ReadLine(); 
} 

und ändern Sie Ihre LoopedData ‚s Signatur wie das zu den keyword als Parameter übergeben:

static void LoopedData(string path, string keywork) 
{ 
    // your code 
} 
Verwandte Themen