c#统计代码行数
小编,已经快学了两年编程了。昨天突发奇想,想统计下这些年到底写过多少行代码,于是做了一个这个小程序来统计代码行数。老规矩,先上图。

比较惭愧,写了两年只有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 != || dirs.Length != )
{
foreach (FileInfo f in file)
{
switch (i)
{
case : if (extName == f.Name) //根据文件名匹配上
{
lst1.Add(f.Name);
} break;
case : 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,没问题。
最后希望各位能再完善完善我们的搜索小功能。
c#统计代码行数的更多相关文章
- Eclipse统计代码行数
开发过程中,经常需要统计代码行数,这时可以通过Eclipse的Search功能来实现. 步骤: 1.在Package Explorer中选中需要统计的包: 2.单击菜单Search-->File ...
- 在Flash Builder或者Eclipse统计代码行数的方法
在Flash Builder或者Eclipse统计代码行数的方法如下图菜单栏--搜索--搜索文件
- 【Linux】常用命令-统计代码行数
公司人员流动大,经常有新的维护任务,交接时喜欢看看新来的模块的代码量,那么问题来了, 如何统计代码行数? 1,最先想到的肯定是 wc. wc -l *.h 将查看[当前目录]下头文件的代码行数,输出结 ...
- 【未解决】对于使用Windows的IDEA进行编译的文件,但无法在Linux系统中统计代码行数的疑问
在我学习使用Windows的IDEA的过程中,将代码文件转移到Linux虚拟机当中,但无法在Linux系统中统计代码行数. 注意:拷贝进虚拟机的文件均能编译运行. 具体过程如下: root@yogil ...
- Visual Studio 统计代码行数
介绍一种简单的统计代码行数的小技巧, 使用正则表达式,用VS强大的查找功能 b[^:b#/]+.$ 最后结果:
- 用django统计代码行数+注释行数
实现统计代码行数: 1.首先在url.py中配置 from django.conf.urls import url from django.contrib import admin from app0 ...
- cloc 统计代码行数工具
cloc 统计代码行数工具 官网地址:http://cloc.sourceforge.net/ 下载完成后 会生成一个.exe文件 需要修改文件名为 cloc.exe 然后把这个文件拷贝到需要统计的根 ...
- python统计代码行数
以前写了一个java的统计代码行数的小程序,最近在看python,于是就参考前辈的代码,写了一个统计文件夹下面各种程序的代码的小程序,这里贴出来供大家参考 参考链接: https://gist.git ...
- Linux下统计代码行数
使用wc统计代码行数 最近写了一些代码,想统计一下代码的行数,在eclipse中好像没这功能,网上搜了一下才发现原来Linux有一个统计文件行数的命令wc.使用wc可以打印出每个文件和总文件的行数.字 ...
随机推荐
- python第三课
本节内容 1.列表 2.购物车设计思路 3.字典 1.列表 不可变类型:整型.字符串.元组tuple 可变类型:列表list.字典dict 2.购物车 3.字典
- Zookeeper 笔记-角色
leader:提供读写服务,负责投票的发起和决议,更新系统状态 follower:为客户提供读服务,如果写服务则转发给leader,选举过程参与投票 observer:为客户端提供读服务,如果是写服务 ...
- PhiloGL学习(6)——深情奉献:快乐的一家
前言 话说上一篇文章结尾讲到这一篇要做一个地球自转以及月球公转的三维动画,提笔,不对,是提键盘开始写的时候脑海中突然出现了几年前春晚风靡的那首歌:蒙古族小丫头唱的快乐的一家.闲言莫提,进入正题. ...
- jquery的2.0.3版本源码系列(7):3043行-3183行,deferred延迟对象,对异步的统一管理
目录 part1 deferred延迟对象 part2 when辅助方法 网盘源代码 链接: https://pan.baidu.com/s/1skAj8Jj 密码: izta part1 defe ...
- JS框架设计读书笔记之-选择器引擎02
选择器引擎涉及相关概念 概念 以Sizzle的主函数声明为例,来说明引擎的相关概念. function Sizzle(selector, context, results, seed) { //... ...
- 利用python深度学习算法来绘图
可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍. 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图! 这个是世界名画& ...
- (11.06)Java小知识
最近由于课程变化,学习计划也跟着改动,留给我写博客的时间也越来越少.今天晚上没有课,抽空过来图书馆写一写,许久不写感觉都有点陌生了! 今天要和大季家分享的衔接了上一篇博客,是关于方法的嵌套调用与递归调 ...
- Node.js EventEmitter
Node.js EventEmitter Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列. Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有 ...
- JAVAscript学习笔记 js计时器与倒计时 第六节 (原创) 参考js使用表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- .Net高级进阶,在复杂的业务逻辑下,如何以最简练的代码,最直观的编写事务代码?
本文将通过场景例子演示,来通俗易懂的讲解在复杂的业务逻辑下,如何以最简练的代码,最直观的编写事务代码. 通过一系列优化最终达到两个效果,1.通过代码块来控制事务(分布式事务),2.通过委托优化Tran ...