• 获取某目录下的所有文件(包括子目录下文件)的数量(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#简单操作XML文件的增、删、改、查
    一个感觉还算可以的验证码生成程序
    安装aclocal1报错问题
    php中soap 的使用实例无需手写WSDL文件,提供自动生成WSDL文件类
    ofstream和ifstream详细用法[转]
    [原]C++ Soap客户端实例
    PHP中文件读、写、删的操作
    C++ Boost Thread 编程指南
    (转)虚函数和纯虚函数区别
    strcpy和memcpy的区别
  • 原文地址:https://www.cnblogs.com/yyw84/p/269033.html
Copyright © 2020-2023  润新知