我前面写过几篇关于文件流的文章,今天就写一个简单的小工具,即搜索文档关键词的工具;它还使用文件流来读取和匹配关键字;
可能网上应该有很多这种东西,但是你用的时候找不到,找也找不到。可以自己手动完成...毕竟这种东西不是经常需要的。
这也是因为我前几天在工作中有这个需求。我需要找出很多本地文件中是否有一些关键字,用关键字替换。百度了两分钟没结果就自己写了。这里发出的版本已经稍微进行了人性化的优化。
实现功能:
开发环境:
开发工具:Visual Studio 2013
。NET框架版本:4.5
键码:
//数据源模型 私有类bindmodel { 公共字符串文件名{ get设置;} 公共字符串文件路径{ get设置;} 公共字符串密钥{ get设置;} public string Operate { get { return & # 34;打开目录& # 34;;} } } //搜索等待提示 Font f = new Font(& # 34;\ ë ë ",14,字体风格。粗体); Rectangle r =新矩形(dataGridView1。宽度/ 2 - 100,dataGridView1。身高/ 2,160,20); dataGridView1。CreateGraphics()。拉绳(& # 34;正在测试,请稍等。。。",f,画笔。红色,r); List & lt;字符串& gtkeys = txtKeys。Text.Split(新字符串[]{ & # 34;rn & # 34},StringSplitOptions。RemoveEmptyEntries)。to list(); DirectoryInfo di =新的DirectoryInfo(txtFolder。正文); //查找所有符合条件的文档 fileinfo[]FIS = di . get files(txt file . text,search option . all directory); binding list & lt;BindModel & gtlistData = new BindingList & ltBindModel & gt(); //循环搜索 Foreach(fis中的fileinfo fi) { Using(Streamreader Sr = new Streamreader(fi。全名)) { String text = Sr . IEnumerable & lt;字符串& gt列表=键。其中(s = & gtcbCap。检查过了?文字。ToLower()。包含(s.ToLower()):文本。包含个); if(列表。count()& gt;0) { BindModel model = new BindModel { FileName = fi。Name, FilePath = fi。全名, Keys =字符串。加入(& # 34;,",list) }; listData。添加(型号); } } } //将数据绑定到页面 DataGridView1。Datasource = ListData最终效果:
写程序,要么是工作需要,要么可以代替自己完成生活中一些重复繁琐的事情,学以致用,偶尔给自己一点小运气。单纯为了工作而成为一个真正的码农,没有思想和目标,真的很无聊。
这里不允许链接,我就直接把所有代码放在网盘上,直接下载运行。自己发:文档关键词搜索工具获取链接地址。如果不需要看代码,可以直接运行Debug文件夹下的exe文件。
从简单到复杂,带着就用

出色的跟进和持续关注








