程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 獲取某目錄下的所有文件(包括子目錄下文件)的數量(C#)

獲取某目錄下的所有文件(包括子目錄下文件)的數量(C#)

編輯:關於C語言

以前寫過一個通過計算目錄遍歷所有文件和子目錄的方法來獲得某目錄下的文件個數,結果發現速度極慢,遠遠不及系統本身目錄屬性裡邊顯示的速度。

int fileNum = 0;
/**//// <summary>
/// 獲取某目錄下的所有文件(包括子目錄下文件)的數量
/// </summary>
/// <param name="srcPath"></param>
/// <returns></returns>
public int GetFileNum(string srcPath)
{
    try
    {

        // 得到源目錄的文件列表,該裡面是包含文件以及目錄路徑的一個數組
        string[] fileList = System.IO.Directory.GetFileSystemEntrIEs(srcPath);
        // 遍歷所有的文件和目錄
        foreach(string file in fileList)
        {
            // 先當作目錄處理如果存在這個目錄就重新調用GetFileNum(string srcPath)
            if(System.IO.Directory.Exists(file))
                GetFileNum(file);
            else
                fileNum++;
        }
       
    }
    catch (Exception e)
    {
        MessageBox.Show (e.ToString());
    }
    return fileNum;
}
近來發現了一個效率更高的方法,只需遍歷目錄就能獲得文件個數,現分享一下
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(dirPath); 

public static int GetFilesCount(System.IO.DirectoryInfo dirInfo)
{
    int totalFile = 0;
    totalFile += dirInfo.GetFiles().Length;
    foreach (System.IO.DirectoryInfo subdir in dirInfo.GetDirectorIEs())
    {
        totalFile += GetFilesCount(subdir);
    }
    return totalFile;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved