代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var searchTexts = new List<string>();
var jumpFolders = new List<string>();
if (textBox1.Text.Contains("85N"))
{
searchTexts.Add("85N");
jumpFolders.Add("85N");
}
if (textBox1.Text.Contains("86N"))
{
searchTexts.Add("86N");
jumpFolders.Add("86N");
}
if (textBox1.Text.Contains("82N"))
{
searchTexts.Add("82N");
jumpFolders.Add("82N");
}
if (textBox1.Text.Contains("83N"))
{
searchTexts.Add("83N");
jumpFolders.Add("83N");
}
if (searchTexts.Count == 0)
{
MessageBox.Show("检索失败");
return;
}
string searchResult = SearchForText(searchTexts.ToArray());
if (!string.IsNullOrEmpty(searchResult))
{
foreach (var folderName in jumpFolders)
{
JumpToFolder(folderName);
}
}
}
private string SearchForText(params string[] searchTexts)
{
string searchResult = string.Empty;
string folderPath = @"D:\Test\";
DirectoryInfo folder = new DirectoryInfo(folderPath);
if (folder.Exists)
{
foreach (var file in folder.GetFiles("*.*", SearchOption.AllDirectories))
{
if (file.Extension != ".txt") continue;
string fileContent = File.ReadAllText(file.FullName);
foreach (var searchText in searchTexts)
{
if (fileContent.Contains(searchText))
{
searchResult = file.FullName;
break;
}
}
}
}
return searchResult;
}
private void JumpToFolder(string folderName)
{
string folderPath = @"D:\Test\";
DirectoryInfo folder = new DirectoryInfo(folderPath);
if (folder.Exists)
{
foreach (var subFolder in folder.GetDirectories())
{
if (subFolder.Name == folderName)
{
Process.Start(subFolder.FullName);
break;
}
}
}
}