我正在尝试编写一个代码来检查给定目录和子目录下的所有文件是否有从网页传递的字符串。截至目前,我有这个代码:
private void ProcessDirectory(string targetDirectory, string origDirectory, string ObjectName)
{
string[] fileEntries = Directory.GetFiles(targetDirectory);
string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach (string fileName in fileEntries)
{
ProcessFile(fileName, origDirectory, ObjectName);
}
foreach (string subdirectory in subdirectoryEntries)
ProcessDirectory(subdirectory, origDirectory, ObjectName);
}
private void ProcessFile(string path, string origDirectory, string ObjectName)
{
if (ObjectName != "")
{
var fileLines = File.ReadAllLines(path);
List<string> fileItems = new List<string>(fileLines);
if (fileItems.Contains(ObjectName))
{
string sExt = Path.GetExtension(path).ToLower();
if (sExt == ".txt")
{
listTextFiles.Items.Add(path.Replace(origDirectory, ""));
}
}
}
它可以工作,但问题是它只在文件中查找完整的单词。例如,如果我查找单词“Account”,并且文件包含单词“Account”,我的代码将起作用。如果文件包含单词“AccountCode”,我的搜索将找不到它。有没有办法解决它?
另一个问题,如何添加一个计数器,在进程结束时显示在给定目录和所有子目录下检查了多少文件。