手动输入要搜索的内容

本文关键字:搜索 手动输入 | 更新日期: 2023-09-27 17:53:32

我有一个程序,它手动遍历文件夹中的文件并搜索关键字,告诉您哪个文件包含这些关键字。

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);
        }
    }
}

我已经能够手动输入要搜索的文件夹,但我在为关键字创建类似的方式时遇到困难。我试过在Main类中引用它,没有成功。我需要一双新鲜的眼睛。

我尝试的任何搜索都没有得到有用的结果

手动输入要搜索的内容

看来你已经知道该怎么做了。你这样做是正确的。要从用户处获取keyword,只需执行与获取路径相同的操作:

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();
}

并像这样更改LoopedData的签名以传递keyword作为参数:

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