C#文件及文件夹的搜索、遍历和过滤

在C#中,可以使用System.IO命名空间中的类来搜索、遍历和过滤文件和文件夹。


1.搜索文件和文件夹

可以使用Directory类的静态方法来搜索文件夹,例如:

string[] directories = Directory.GetDirectories(@"C:\", "*", SearchOption.AllDirectories);

此代码将返回C:\根目录下的所有子目录,以及这些子目录中的所有子目录,以此类推。


可以使用Directory类的静态方法来搜索文件,例如:

string[] files = Directory.GetFiles(@"C:\", "*.txt", SearchOption.AllDirectories);

此代码将返回C:\根目录下的所有扩展名为.txt的文件,以及这些文件夹中的所有子文件夹中的扩展名为.txt的文件,以此类推。


2.遍历文件和文件夹

可以使用Directory类的静态方法来遍历文件夹,例如:

foreach (string directory in directories)
{
    Console.WriteLine(directory);
}

此代码将遍历所有搜索到的文件夹并将它们的完整路径打印到控制台。


可以使用Directory类的静态方法来遍历文件,例如:

foreach (string file in files)
{
    Console.WriteLine(file);
}

此代码将遍历所有搜索到的文件并将它们的完整路径打印到控制台。


3.过滤文件和文件夹

可以使用Directory类的静态方法和一些Linq查询来过滤文件和文件夹,例如:

string[] filteredDirectories = Directory.GetDirectories(@"C:\", "*", SearchOption.AllDirectories)
    .Where(directory => directory.Contains("Windows"))
    .ToArray();

此代码将返回C:\根目录下的所有包含"Windows"字符串的子目录,以及这些子目录中的所有子目录,以此类推。


可以使用Directory类的静态方法和一些Linq查询来过滤文件,例如:

string[] filteredFiles = Directory.GetFiles(@"C:\", "*.txt", SearchOption.AllDirectories)
    .Where(file => new FileInfo(file).Length < 1024)
    .ToArray();

此代码将返回C:\根目录下的所有扩展名为.txt且文件大小小于1024字节的文件,以及这些文件夹中的所有子文件夹中的扩展名为.txt且文件大小小于1024字节的文件,以此类推。


果糖网