编写 winform 代码: 检索指定文件夹下以及其子文件夹以.cs结尾的文件,获取文件中" 和" 之间的,单行的且包含中文的字符串,将结果输出到项目文件夹下,以r.txt结尾的文件
时间: 2024-02-17 15:00:22 浏览: 73
可以使用以下代码实现:
```csharp
using System;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace WinFormDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnSearch_Click(object sender, EventArgs e)
{
string folderPath = txtFolderPath.Text.Trim();
if (string.IsNullOrEmpty(folderPath))
{
MessageBox.Show("请输入要搜索的文件夹路径!");
return;
}
// 遍历指定文件夹及其子文件夹下所有.cs结尾的文件
var files = Directory.GetFiles(folderPath, "*.cs", SearchOption.AllDirectories);
var result = "";
foreach (var file in files)
{
// 读取文件内容并查找符合要求的字符串
var lines = File.ReadAllLines(file);
foreach (var line in lines)
{
var match = Regex.Match(line, @"[\u4e00-\u9fa5]+和[\u4e00-\u9fa5]+");
if (match.Success)
{
result += match.Value + "\r\n";
}
}
}
// 将结果写入文件
var outputPath = Path.Combine(folderPath, "result.txt");
File.WriteAllText(outputPath, result);
MessageBox.Show("搜索完成,结果已保存到 " + outputPath + " 文件中!");
}
}
}
```
在窗体中添加一个文本框 `txtFolderPath`、一个按钮 `btnSearch` 和一个文件夹浏览框 `folderBrowserDialog1`,然后将按钮的 `Click` 事件绑定到上述代码中的 `btnSearch_Click` 方法。
代码中使用 `Directory.GetFiles()` 遍历指定文件夹及其子文件夹下所有 `.cs` 结尾的文件,使用 `File.ReadAllLines()` 读取文件内容,使用正则表达式匹配中文和 "和",将符合要求的字符串拼接到 `result` 变量中,最后使用 `File.WriteAllText()` 将结果写入到 `result.txt` 文件中。
注意,由于是在 Windows 环境下开发,因此使用的是 `\r\n` 作为换行符。如果在其他操作系统下运行可能需要改为使用 `\n` 作为换行符。
阅读全文