///
/// 遍历指定目录下的文件
///
/// 要遍历的路径
/// 是否只遍历当前目录(不处理子目录),默认为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");