`
yyw84
  • 浏览: 76589 次
社区版块
存档分类
最新评论

获取某目录下的所有文件(包括子目录下文件)的数量(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; 
}

分享到:
评论

相关推荐

    C#全能速查宝典

    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...

    C#程序开发范例宝典(第2版).part02

    实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘...

    C#程序开发范例宝典(第2版).part08

    实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘...

    C#程序开发范例宝典(第2版).part12

    实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘...

    C#.net_经典编程例子400个

    273 实例190 获取窗口文本 273 实例191 判断文件是否正在被使用 274 实例192 在程序中调用.HLP文件 275 实例193 C#中实现文件拖放 276 实例194 文件比较 276 第7章 操作系统与Windows...

    C#程序开发范例宝典(第2版).part13

    实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘...

    C# for CSDN 乱七八糟的看不懂

    第6页 C#(WINFORM)学习 找到集合中数量最多的一个元素 利用方法来查找,可以返回两个变量。 object Jmax0(ArrayList v11,ref int jj) { int i; object j0=0; ArrayList y11=new ArrayList(); //各个不同的元素的...

    zipfile.dll或者myzip.dll的下载解压缩dll

    功能 : 将目录SrcPath里的所有文件(子目录)添加到压缩文档ZipFile 参数 : SrcPath 待压缩目录(全路径) Zipfile 目标文件(全路径) 返回 : 失败 &gt;0 成功 说明 : 同名文件将自动被替换(overwrite) 解压文件...

    CLR.via.C#.(中文第3版)(自制详细书签)

    CLR.via.C#.(中文第3版)(自制详细书签)Part2 CLR via C#(第3版) Jeffrey Richter 著 周靖 译 出版时间:2010年09月 页数:800 介绍 享有全球盛誉的编程专家Jeffrey Richter,这位与Microsoft .NET开发团队...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    CLR.via.C#.(中文第3版)(自制详细书签)Part2 CLR via C#(第3版) Jeffrey Richter 著 周靖 译 出版时间:2010年09月 页数:800 介绍 享有全球盛誉的编程专家Jeffrey Richter,这位与Microsoft .NET开发团队合作...

Global site tag (gtag.js) - Google Analytics