手动输入要搜索的内容
本文关键字:搜索 手动输入 | 更新日期: 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
}