很多程序员都以自己写的代码的行数作为自己程序员阅历的一个标志,如何统计呢,以下是具体内容。
小编,已经快学了两年编程了。昨天突发奇想,想统计下这些年到底写过多少行代码,于是做了一个这个小程序来统计代码行数。老规矩,先上图。
比较惭愧,写了两年只有2万多行。那我们还是进入下一项吧。
界面搭建我也不说了,我就讲一下思路和核心代码,最后附上源代码。life_programmer、serch_files。
思路:我们点击刷新按钮,他会弹出一个小窗口让我们选择要搜索的区域。这个原理在我的c#游戏进程杀手的随笔讲过了,这里就不赘述了。
关于这个搜索小窗口,我觉得适用范围很广,我是把它做成了一个.dll文件引入到我们这个主程序的。这个小窗口我也会附上源码在本篇随笔。
那我们这次主要讲讲和上一次不一样的地方。
既然我们把它这个小窗口封装起来了,那么我们就要给予它最大的灵活性。目的:让它搜索出我们想要的东西。
那么达成这个目的,我们需要明确两点:
1)要搜索文件的名字。(或者说要搜索的字段)
2)要搜索文件的类型。(文件名,还是后缀名)
所以为了完成这两点,我们需要将将要搜索的字段封装在这个小窗体里,设置一个属性对外提供访问接口。
list<string> serchname = new list<string>(); //要查找的字段 public list<string> serchname1 { get { return serchname; } set { serchname = value; } }
//设置查找文件类型 private int i; public int i { get { return i; } set { i = value; } }
将这两个字段封装好,在我们的主窗体内对其赋值即能提供其最大的灵活性。
那么接下来我们重点来聊聊子窗体中finlefile类
using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; using system.io; namespace serch_file { class findfile { public list<string> lst1 = new list<string>(); public list<string> getfile(string path, string extname, int i)//创建一个list<fileinfo>类型的函数 { getdir(path, extname, i);//传入路径、搜索的字段 、将要搜索的类型 return lst1; } private void getdir(string path, string extname, int i) { try { //获取文件夹列表 string[] dirs = directory.getdirectories(path); directoryinfo fdir = new directoryinfo(path); fileinfo[] file = fdir.getfiles(); //当前目录文件或目录不为空 if (file.length != 0 || dirs.length != 0) { foreach (fileinfo f in file) { switch (i) { case 0: if (extname == f.name) //根据文件名匹配上 { lst1.add(f.name); } break; case 1: if (extname == f.extension) //根据后缀名匹配上 { lst1.add(f.fullname); } break; } } foreach (string d in dirs) { getdir(d, extname, i);//递归 } } } catch { } } } }
大家注意在24行遍历文件夹列表时,我们会在盘符下面遍历到一个零时文件夹,其中索引为0的值似乎是一个乱码,其实不然这是我们盘符下的系统隐藏文件夹。大家可以不管它。
那最后我们来谈谈怎么把一个窗体封装成dll文件,供其它项目引用。
1、生成dll文件
右键我们的项目名称,点击进入属性。
把输出类型改为类库,然后点击生成解决方案。就会在本程序的debug目录下生成一个dll文件。
2、将dll引入目标项目
把我们生成的dll文件先复制拷贝到目标项目的debug目录下。然后右击引用,找到添加引用。
点击浏览找到我们的dll文件。
再在我们的代码中导入命名空间
然后就成功了。
试试:
ok,没问题。
最后希望各位能再完善完善我们的搜索小功能。
以上就是关于统计自己写了多少行代码的一个方法,作为程序员,赶快统计一下吧。
原文链接:http://www.cnblogs.com/kunming97/p/7979235.html