1、资料管理器
private void Form2_Load(object sender,EventArgs e)
{
//文件的根路径
string path = "demo";
LoadDireatory(path,treeView1.Nodes);
}
private void LoadDireatory(string path,TreeNodeCollection tnc)
{
//加载所有的目录
//GetDirectories获取指定目录中的子目录的名称
string[] dires = Directory.GetDirectories(path);
//循环拿出里面的数据
for (int i = 0; i < dires.Length; i++)
{
//拿到文件的文件名
//GetFileNameWithoutExtension 返回不具有扩展名的指定路径字符串的文件名
string name = Path.GetFileNameWithoutExtension(dires[i]);
TreeNode tn=tnc.Add(name);
//递归
LoadDireatory(dires[i],tn.Nodes);
}
//加载每个目录下的文件
string[] file = Directory.GetFiles(path);
for (int i = 0; i < file.Length; i++)
{
string fileName = Path.GetFileNameWithoutExtension(file[i]);
TreeNode tn1 = tnc.Add(fileName);
tn1.Tag=file[i];
}
}
private void treeView1_Click(object sender,EventArgs e)
{
//选中相应的文件的文件名,双击打开里面的内容
if (treeView1.SelectedNode.Tag!=null)
{
//将文本内容显示在文本框中
textBox1.Text = File.ReadAllText(treeView1.SelectedNode.Tag.ToString(),Encoding.Default);
}
}
2、正则表达式验证邮箱
Console.WriteLine("请输入邮箱");
string email = Console.ReadLine();
//静态方法
bool result = Regex.IsMatch(email,"[0-9a-zA-Z_.-]+@[0-9a-zA-Z_-]+([.][a-zA-Z]+){1,2}");
if (result)
{
Console.WriteLine("是邮箱");
}
else
{
Console.WriteLine("不是邮箱");
}
Console.ReadKey(true);
3、提取页面的所有的邮箱
WebClient wc=new WebClient();
//设置该页面可以什么编码读取
wc.Encoding = Encoding.UTF8;
//从这个地址上把所有的字符串下载下来
string html = wc.DownloadString("http://tieba.baidu.com/p/690777573");
//集合
MatchCollection matches = Regex.Matches(html,"([0-9a-zA-Z_.-]+)(@[0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2})");
//遍历所有的匹配的邮箱
foreach (Match item in matches)
{
if (item.Success) //判断是否匹配成功,可写可不写,但是,写上效率高点
{
Console.WriteLine(item.Groups[1].Value+"===="+item.Groups[2].Value);
}
}
Console.WriteLine("该页面总共有{0}个邮箱",matches.Count);
Console.ReadKey();
4、敏感词处理
StringBuilder listMod = new StringBuilder();//需要审核的
StringBuilder listBanned = new StringBuilder();//禁止发帖的
private void Form2_Load(object sender,EventArgs e)
{
//组合正则表达式,
//读取文件,返回一个字符串数组
string[] lines = File.ReadAllLines("mg.txt",Encoding.Default);
//循环遍历文本文件,将中间的“=”去掉
for (int i = 0; i < lines.Length; i++)
{
//将“=”去掉,返回一个集合
string[] msg = lines[i].Split(new char[]{'='},StringSplitOptions.RemoveEmptyEntries);
//再进行判断
if (msg[1] == "{MOD}") //需要审核的
{
//那么就将这个需要审核的添加到第一个集合中
listMod.Append(msg[0] + "|");
}
else if(msg[1]=="{BANNED}")
{
listBanned.Append(msg[0]+"|");
}
}
//好,这样我们将需要审核的和禁止发帖的练成了两个大的字符串,但是呢,每个字符串后面都多了一个“|”,我们需要把最后的“|”给切掉
//移除需要审核的(去除最后一个,长度是1)
listMod.Remove(listMod.Length-1,1);
//移除禁止发帖的
listBanned.Remove(listBanned.Length-1,1);
}
//发帖
private void btnOk_Click(object sender,EventArgs e)
{
if (Regex.IsMatch(textBox1.Text,listMod.ToString()))
{
MessageBox.Show("需要审核才能发帖");
}
else if (Regex.IsMatch(textBox2.Text,listBanned.ToString()))
{
MessageBox.Show("禁止发帖");
}
else
{
textBox2.Text = textBox1.Text;
}
}
5、读取xml
//加载该文件
XDocument xdc = XDocument.Load("1.xml");
//获取文件的根元素(根节点)
XElement root = xdc.Root;
//Console.WriteLine(root);//获取所有的元素
//Console.WriteLine(root.Name);//获取茛元素的名称
//获取根元素中所有的直接子元素 IEnumerable<XElement> eles = root.Elements(); foreach (XElement item in eles) { Console.WriteLine(item.Name+"====="+item.Attribute("classId").Value); //遍历的是所有的class元素(标签)下的所有的子元素(标签) foreach (XElement stu in item.Elements()) { //读取班级下面的根元素 Console.WriteLine(stu.Name+"======"+stu.Attribute("id").Value); //读取所有的姓名 Console.WriteLine(stu.Element("name").Value); //读取性别 Console.WriteLine(stu.Element("gender").Value); //读取年龄 Console.WriteLine(stu.Element("age").Value); } } Console.ReadKey();