點擊下載《代碼統計工具(支持各種文件類型)》
1. 前言
本文介紹了一款使用C#開發的代碼行數統計軟件。該軟件允許用戶通過選擇文件目錄和設置統計項目類型,來統計指定目錄下的代碼行數。軟件提供了三種統計方式:按文件名統計、按文件類型統計、按文件目錄統計,并能計算出包括總行數、注釋行數、空行數等在內的詳細數據結果。此外,軟件還提供了擴展功能,允許有一定編程能力的用戶自定義支持的項目類型和擴展文件名,以滿足特定需求。
2. 功能介紹及使用
以下為軟件主界面。
2.1 按文件統計
1、點擊瀏覽選擇需要進行統計的文件目錄。
2、選擇文件目錄對應的項目類型,選擇完成后,將顯示該項目類型將要統計的文件后綴名。
3、點擊統計,統計完成后,將會顯示統計數據在列表中,同時底部也將顯示匯總結果。
4、可以看到按文件名統計結果,其他類型的統計結果也會同步生成。
2.2 按文件類型統計
1、點擊瀏覽選擇需要進行統計的文件目錄。
2、選擇文件目錄對應的項目類型,選擇完成后,將顯示該項目類型將要統計的文件后綴名。
3、點擊統計,統計完成后,將會顯示統計數據在列表中,同時底部也將顯示匯總結果。
4、可以看到按文件類型統計結果,其他類型的統計結果也會同步生成。
2.3 按文件目錄統計
1、點擊瀏覽選擇需要進行統計的文件目錄。
2、選擇文件目錄對應的項目類型,選擇完成后,將顯示該項目類型將要統計的文件后綴名。
3、點擊統計,統計完成后,將會顯示統計數據在列表中,同時底部也將顯示匯總結果。
4、可以看到按文件目錄統計結果,其他類型的統計結果也會同步生成。
2.4 導出Execl
待統計結果出來后可點擊導出結果按鈕將統計結果導出為execl文件,導出的文件中將包含按文件統計、按文件類型統計、按文件目錄統計三個統計結果。
打開看下導出的execl文件內容如下:
2.5 添加自定義項目支持
有一定編程能力的小伙伴可以修改本程序支持的項目類型和統計時支持的文件擴展名類型,使用Navicat打開程序目錄下的DataServer.db文件,可以看到程序當前已支持的項目類型和相應的文件類型,根據需要新增項目類型(project表)、新增支持的文件類型(file_config表)。
說明:
1、project_type:項目類型。
2、file_extension:該項目統計時需要統計的文件后綴名,多個之間以英文的逗號(,)分隔。
3、file_extension:支持的文件后綴名,多個之間以英文的逗號(,)分隔。
4、code_regex:用于正則匹配代碼的正則表達式。
5、single_line_comment_regex:后綴名文件對應的單行代碼注釋正則表達式。
6、multiLine_comment_regex:后綴名文件對應的多行代碼注釋正則表達式。
正則表達式一旦配置錯誤,將會導致程序統計結果不正確并且有可能導致程序異常,需謹慎操作。
2.6 代碼片段
以下為部分代碼,僅供參考
private void InitializeSQLite()
{//獲取基目錄,它由程序集沖突解決程序用來探測程序集。string dbPath = AppDomain.CurrentDomain.BaseDirectory + "DataServer.db";sqliteDBHelper = new SQLiteDBHelper(dbPath);if (!File.Exists(dbPath)){//創建文件和表MessageBox.Show("丟失數據庫配置文件DataServer.db,程序無法運行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);Application.Exit();return;}string strSql = "select * from project order by project_type";projectDataTable = sqliteDBHelper.ExecuteDataTable(strSql, null);foreach (DataRow row in projectDataTable.Rows){projectTypeComboBox.Items.Add(row["project_type"].ToString());}if (projectTypeComboBox.Items.Count > 0){projectTypeComboBox.SelectedIndex = 0;}strSql = "select * from file_config";fileConfigDataTable = sqliteDBHelper.ExecuteDataTable(strSql, null);
}//選擇文件目錄
private void selectFileDirectoryButton_Click(object sender, EventArgs e)
{using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()){folderBrowserDialog.Description = "選擇文件夾";DialogResult dialogResult = folderBrowserDialog.ShowDialog();if (dialogResult == DialogResult.OK){fileDirectoryTextBox.Text = folderBrowserDialog.SelectedPath;}}
}//開始統計
private void startButton_Click(object sender, EventArgs e)
{if (string.IsNullOrEmpty(fileDirectoryTextBox.Text)){MessageBox.Show("請選擇文件目錄后再操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);return;}fileExtensionList.Clear();string[] array = fileExtensionTextBox.Text.Split(',');foreach (string str in array){fileExtensionList.Add(str.Trim().ToLower());}Task task = Task.Run(() => {StartStatisticsTask();});
}private void StartStatisticsTask()
{startButton.Text = "停止統計";resultTextBox.Text = "正在統計中...";fileStatisticsDictionary = new Dictionary<string, Tuple<long, long, long>>();fileTypeStatisticsDictionary = new Dictionary<string, Tuple<long, long, long>>();fileTypeCountDictionary = new Dictionary<string, long>();fileDirectoryStatisticsDictionary = new Dictionary<string, Tuple<long, long, long>>();fileDirectoryDictionary = new Dictionary<string, int>();fileListView.Items.Clear();fileTypeListView.Items.Clear();StatisticsFiles(fileDirectoryTextBox.Text);SetFilesTabPageListViewData();SetFileTypeTablePageListViewData();SetFileDirectoryTablePageListViewData();startButton.Text = "開始統計";
}
3. 總結
該C#開發的代碼行數統計軟件是一款功能強大且靈活的工具,旨在幫助用戶快速準確地統計文件目錄中的代碼行數。通過直觀易用的界面和三種統計方式(文件名、文件類型、文件目錄),用戶可以方便地獲取到包括總行數、注釋行數、空行數等關鍵信息。軟件還提供了自定義支持的項目類型和擴展文件名的功能,為用戶提供了更大的靈活性和適用性。這款軟件對于軟件開發人員、項目管理者以及需要分析代碼量的用戶來說,都是一個非常實用的工具。
點擊下載《代碼統計工具(支持各種文件類型)》