winform,检索指定文件夹下以及其子文件夹以.cs结尾的文件,获取文件中双引号之间的,且双引号在同一行且包含中文的字符串,将结果输出到项目文件夹下,r.txt文件
时间: 2024-02-17 22:01:06 浏览: 75
定时自动删除指定文件夹下文件的Winform应用程序
5星 · 资源好评率100%
好的,以下是代码实现:
```csharp
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace YourNamespace
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 定义正则表达式
Regex regex = new Regex("\"[^\"]*[\u4e00-\u9fa5]+[^\"]*\"");
// 获取项目文件夹路径
string projectPath = Path.GetDirectoryName(Application.StartupPath);
// 定义结果输出文件路径
string resultFilePath = Path.Combine(projectPath, "r.txt");
// 搜索指定文件夹下以及其子文件夹中以.cs结尾的文件
foreach (string filePath in Directory.GetFiles(textBox1.Text, "*.cs", SearchOption.AllDirectories))
{
// 读取文件内容
string fileContent = File.ReadAllText(filePath);
// 在文件内容中查找符合正则表达式的字符串
MatchCollection matches = regex.Matches(fileContent);
// 将匹配结果写入结果输出文件
foreach (Match match in matches)
{
File.AppendAllText(resultFilePath, match.Value.Trim('"') + Environment.NewLine);
}
}
// 显示完成信息
MessageBox.Show("处理完成");
}
}
}
```
这是一个简单的WinForm应用程序,包含一个文本框和一个按钮。您需要将文件夹路径输入到文本框中,然后单击按钮运行程序。程序将搜索指定文件夹下以及其子文件夹中以.cs结尾的所有文件,然后在文件内容中查找符合正则表达式的字符串,并将匹配结果输出到项目文件夹下的r.txt文件中。
请注意,此代码仅适用于双引号之间仅包含一个中文字符的情况。如果有多个中文字符或双引号不在同一行,程序将无法正确处理。
阅读全文