编写 winform 代码: 检索指定文件夹下以及其子文件夹以.cs结尾的文件,获取文件中" 和" 之间的,且包含中文的字符串,将结果输出到项目文件夹下,以r.txt结尾的文件
时间: 2024-02-17 10:00:14 浏览: 95
好的,以下是一个Winform代码示例,可实现检索指定文件夹下以及其子文件夹以.cs结尾的文件,并获取文件中" 和" 之间的,且包含中文的字符串,将结果输出到项目文件夹下,以r.txt结尾的文件:
```csharp
private void btnSearch_Click(object sender, EventArgs e)
{
//获取指定文件夹路径
string folderPath = txtFolderPath.Text.Trim();
//判断路径是否存在
if (!Directory.Exists(folderPath))
{
MessageBox.Show("指定路径不存在!");
return;
}
//获取所有.cs文件路径
string[] files = Directory.GetFiles(folderPath, "*.cs", SearchOption.AllDirectories);
//遍历文件,获取符合条件的字符串
List<string> result = new List<string>();
foreach (string file in files)
{
//读取文件内容
string content = File.ReadAllText(file, Encoding.UTF8);
//正则表达式匹配符合条件的字符串
string pattern = @"[\u4e00-\u9fa5]+ 和 [\u4e00-\u9fa5]+";
Regex regex = new Regex(pattern);
MatchCollection matches = regex.Matches(content);
//将符合条件的字符串添加到结果集合中
foreach (Match match in matches)
{
result.Add(match.Value);
}
}
//将结果输出到r.txt文件中
string outputPath = Path.Combine(Application.StartupPath, "r.txt");
File.WriteAllLines(outputPath, result, Encoding.UTF8);
MessageBox.Show("搜索完成并输出结果!");
}
```
需要添加以下命名空间引用:
```csharp
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
```
注意:在输出结果时,需要使用`Path.Combine`方法将项目文件夹路径和文件名拼接为完整路径。另外,`File.WriteAllLines`方法会自动创建文件并写入内容,如果文件已存在,则会覆盖原文件内容。如果需要追加内容到已存在的文件中,可以使用`File.AppendAllLines`方法。
阅读全文