代碼量統計工具


這些天找工作,在描述自己的語言技能時,總不知道該怎么說比較清楚。精通?不敢……

熟悉?多少才算……

一般?

了解?

索性今天寫了個統計代碼量的小工具,把最近在做的項目放進去跑了一下,python果然只是“一般”了解,這么少的量……

貼個圖:

代碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace countLinesCsharp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        List<int> countLines(string[] extensions, string folderPath) {

            //初始化統計數組
            List<int> counts = new List<int>();
            for (int i = 0; i < extensions.Length; i++)
            {
                counts.Add(0);
            }

            //遍歷文件夾進行統計
            DirectoryInfo rootFolder = new DirectoryInfo(folderPath);
            List<DirectoryInfo> folders = new List<DirectoryInfo>();

            folders.Add(rootFolder);
            int index = 0;
            while(index != folders.Count)
            {
                DirectoryInfo folder = folders[index];

                foreach (DirectoryInfo tempFolder in folder.GetDirectories()) {
                    folders.Add(tempFolder);
                }

                FileInfo[] files = folder.GetFiles();

                foreach (FileInfo file in files)
                {
                    for (int i = 0; i < extensions.Length; i++)
                    {
                        if (extensions[i].Equals(file.Extension))
                        {
                            int lines = 0;
                            StreamReader read = file.OpenText();
                            while (null != read.ReadLine()) {
                                lines++;
                            }
                            counts[i] += lines;
                        }
                    }
                }
                index++;
            }
            return counts;
        }

        private void chooseDirButt_Click(object sender, EventArgs e)
        {
            //選擇文件夾
            FolderBrowserDialog folderDlg = new FolderBrowserDialog();
            folderDlg.ShowDialog();
            this.dirPathLabel.Text = folderDlg.SelectedPath;
            startButt.Enabled = true;
        }

        private void startButt_Click(object sender, EventArgs e)
        {
            //清空輸出框
            result.Text = "";

            //獲得后綴名類型
            string[] extensions = this.extensions.Text.Split();

            List<int> count = countLines(extensions, this.dirPathLabel.Text);

            for(int i = 0; i < count.Count; i++){
                result.Text += extensions[i] + ":" + count[i] + "\r\n";
            }
        }
    }
}
View Code

工具下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM