C#取得指定路径下所有目录及文件名称(可递归)

来源:互联网 发布:动画制作简单软件 编辑:程序博客网 时间:2024/06/08 14:30

using System.IO;   
  
///    
/// 取得指定路径下所有目录及文件名称(可递归)   
///    
/// 指定路径   
/// 要与 strDir 中的文件名匹配的搜索字符串   
/// 例:   
/// “*.abc*”返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。   
/// “*.abcd”只返回扩展名为 .abcd 的文件。   
/// “*.abcde”只返回扩展名为 .abcde 的文件。   
/// “*.abcdef”只返回扩展名为 .abcdef 的文件。   
///    
/// 查询得到的所有目录ArrayList   
/// 查询得到的所有文件名称ArrayList   
/// 是否递归查询   
private void GetFileList(string strDir, string strFilePattern, ArrayList arrDirs,   
    ArrayList arrFiles, bool bIsRecursive)   
{   
    if (string.IsNullOrEmpty(strDir))   
    {   // 参数正确性检查   
        return;   
    }   
  
    try  
    {   
        // 取得指定路径下所有符合条件的文件   
        string[] strFiles = Directory.GetFiles(strDir, strFilePattern);   
        // 取得指定路径下所有目录   
        string[] strDirs = Directory.GetDirectories(strDir);   
  
        foreach (string name in strFiles)   
        {   // 将所有文件名称加入结果ArrayList中   
            arrFiles.Add(name);   
        }   
  
        foreach (string name in strDirs)   
        {   // 将所有目录加入结果ArrayList中   
            arrDirs.Add(name);   
        }   
  
        if (bIsRecursive)   
        {   // 递归   
            if (strDirs.Length > 0)   
            {   
                foreach (string dir in strDirs)   
                {   // 递归遍历所有文件夹   
                    GetFileList(dir, strFilePattern, arrDirs, arrFiles, bIsRecursive);   
                }   
            }   
        }   
  
    }   
    catch  
    {// 异常处理   
    }   
}  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/stone0419/archive/2007/07/19/1699658.aspx

原创粉丝点击