很多程序員都以自己寫的代碼的行數(shù)作為自己程序員閱歷的一個標(biāo)志,如何統(tǒng)計(jì)呢,以下是具體內(nèi)容。
小編,已經(jīng)快學(xué)了兩年編程了。昨天突發(fā)奇想,想統(tǒng)計(jì)下這些年到底寫過多少行代碼,于是做了一個這個小程序來統(tǒng)計(jì)代碼行數(shù)。老規(guī)矩,先上圖。
比較慚愧,寫了兩年只有2萬多行。那我們還是進(jìn)入下一項(xiàng)吧。
界面搭建我也不說了,我就講一下思路和核心代碼,最后附上源代碼。life_programmer、serch_files。
思路:我們點(diǎn)擊刷新按鈕,他會彈出一個小窗口讓我們選擇要搜索的區(qū)域。這個原理在我的c#游戲進(jìn)程殺手的隨筆講過了,這里就不贅述了。
關(guān)于這個搜索小窗口,我覺得適用范圍很廣,我是把它做成了一個.dll文件引入到我們這個主程序的。這個小窗口我也會附上源碼在本篇隨筆。
那我們這次主要講講和上一次不一樣的地方。
既然我們把它這個小窗口封裝起來了,那么我們就要給予它最大的靈活性。目的:讓它搜索出我們想要的東西。
那么達(dá)成這個目的,我們需要明確兩點(diǎn):
1)要搜索文件的名字。(或者說要搜索的字段)
2)要搜索文件的類型。(文件名,還是后綴名)
所以為了完成這兩點(diǎn),我們需要將將要搜索的字段封裝在這個小窗體里,設(shè)置一個屬性對外提供訪問接口。
list<string> serchname = new list<string>(); //要查找的字段 public list<string> serchname1 { get { return serchname; } set { serchname = value; } }
//設(shè)置查找文件類型 private int i; public int i { get { return i; } set { i = value; } }
將這兩個字段封裝好,在我們的主窗體內(nèi)對其賦值即能提供其最大的靈活性。
那么接下來我們重點(diǎn)來聊聊子窗體中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)//創(chuàng)建一個list<fileinfo>類型的函數(shù) { 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(); //當(dāng)前目錄文件或目錄不為空 if (file.length != 0 || dirs.length != 0) { foreach (fileinfo f in file) { switch (i) { case 0: if (extname == f.name) //根據(jù)文件名匹配上 { lst1.add(f.name); } break; case 1: if (extname == f.extension) //根據(jù)后綴名匹配上 { lst1.add(f.fullname); } break; } } foreach (string d in dirs) { getdir(d, extname, i);//遞歸 } } } catch { } } } }
大家注意在24行遍歷文件夾列表時,我們會在盤符下面遍歷到一個零時文件夾,其中索引為0的值似乎是一個亂碼,其實(shí)不然這是我們盤符下的系統(tǒng)隱藏文件夾。大家可以不管它。
那最后我們來談?wù)勗趺窗岩粋€窗體封裝成dll文件,供其它項(xiàng)目引用。
1、生成dll文件
右鍵我們的項(xiàng)目名稱,點(diǎn)擊進(jìn)入屬性。
把輸出類型改為類庫,然后點(diǎn)擊生成解決方案。就會在本程序的debug目錄下生成一個dll文件。
2、將dll引入目標(biāo)項(xiàng)目
把我們生成的dll文件先復(fù)制拷貝到目標(biāo)項(xiàng)目的debug目錄下。然后右擊引用,找到添加引用。
點(diǎn)擊瀏覽找到我們的dll文件。
再在我們的代碼中導(dǎo)入命名空間
然后就成功了。
試試:
ok,沒問題。
最后希望各位能再完善完善我們的搜索小功能。
以上就是關(guān)于統(tǒng)計(jì)自己寫了多少行代碼的一個方法,作為程序員,趕快統(tǒng)計(jì)一下吧。
原文鏈接:http://www.cnblogs.com/kunming97/p/7979235.html