手动输入要搜索的内容
Manually entering what to search for
我有一个程序可以手动循环遍历文件夹中的文件并搜索关键字,告诉您哪个文件有这些关键字。
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 class 中引用它,但没有成功。我需要一双新鲜的眼睛。
我尝试的任何搜索都没有产生有用的结果
看来你已经知道该怎么做了。您正确地为路径做了它。要从用户那里获取 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
}
我有一个程序可以手动循环遍历文件夹中的文件并搜索关键字,告诉您哪个文件有这些关键字。
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 class 中引用它,但没有成功。我需要一双新鲜的眼睛。
我尝试的任何搜索都没有产生有用的结果
看来你已经知道该怎么做了。您正确地为路径做了它。要从用户那里获取 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
}