c#搜索C盘下所有文件及文件夹内TXT格式文件

2024-12-02 16:12:57
推荐回答(1个)
回答1:

/// 
/// 遍历指定目录下的文件
/// 

/// 要遍历的路径
/// 是否只遍历当前目录(不处理子目录),默认为false(处理子目录)
/// 所有文件列表
public static List EnumFile(string path, string pattern, bool currentPathOnly = false)
{
    List files = new List();
    // 检查目录是否存在
    if (!Directory.Exists(path))
    {
        return files;
    }

    FileSystemInfo[] fs = new DirectoryInfo(path).GetFileSystemInfos();

    foreach (FileSystemInfo fsi in fs)
    {
        // 跳过缩略图目录
        if (fsi.Name.Equals("thumb"))
        {
            continue;
        }

        if (fsi.Attributes == (FileAttributes.Hidden | FileAttributes.System))
        { // 跳过系统和隐藏
            continue;
        }
        if ((fsi.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
        {   // 目录
            files.AddRange(EnumFile(fsi.FullName, pattern, false));
            continue;
        }

        // 文件
        if (!string.IsNullOrEmpty(pattern) && !pattern.ToUpper().Contains(fsi.Extension.ToUpper()))
        { // 筛选指定的文件类型
            continue;
        }

        files.Add(fsi.FullName);
    }

    return files;
}

// 调用  
List files = EnumFile("C:\\", ".txt");