C# Directory.GetFiles – 获取目录下的所有文件

  • Post category:C#

Directory.GetFiles 方法是C#中用于获取文件名字符串数组的静态方法。通过该方法可以获取指定目录下(包括子目录)所有符合条件的文件名,可以过滤掉不需要的文件,方便用户针对这些文件进行相应的操作。

方法的参数说明

Directory.GetFiles 方法的完整格式如下:

public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption);

该方法包含三个参数,分别是:

  • path:表示要搜索的目录路径;
  • searchPattern:表示要搜索的文件的匹配模式,可以使用通配符 * 代表任意字符,也可以使用 ? 代表单个字符;
  • searchOption:表示搜索选项,包括只搜索当前目录(SearchOption.TopDirectoryOnly)或包括子目录(SearchOption.AllDirectories)。

方法的使用攻略

下面将详细讲解 Directory.GetFiles 方法的使用攻略:

1. 简单使用获取指定目录下的所有文件名

如果你想获取一个指定目录下的所有文件名,可以使用 Directory.GetFiles 方法的第一个参数指定目录路径,第二个参数使用通配符 * 来匹配所有文件,第三个参数使用 SearchOption.TopDirectoryOnly 来只搜索当前目录。示例代码如下:

using System;
using System.IO;

class Program {
    static void Main(string[] args) {
        var files = Directory.GetFiles(@"C:\Users\Administrator\Desktop", "*.*", SearchOption.TopDirectoryOnly);
        foreach (var file in files) {
            Console.WriteLine(file);
        }
    }
}

这段代码将会输出指定目录下所有的文件名。

2. 过滤掉不符合条件的文件名

如果你希望获取指定目录下符合一定条件的所有文件名,可以使用 Directory.GetFiles 方法的第二个参数来指定匹配模式。例如,如果你只想获取以 “.txt” 结尾的文件名,可以将第二个参数设为 “*.txt”,示例代码如下:

using System;
using System.IO;

class Program {
    static void Main(string[] args) {
        var files = Directory.GetFiles(@"C:\Users\Administrator\Desktop", "*.txt", SearchOption.TopDirectoryOnly);
        foreach (var file in files) {
            Console.WriteLine(file);
        }
    }
}

这样,该段代码只会输出指定目录下以 .txt 结尾的文件名。

总结

通过上述示例代码,可以看到,使用 Directory.GetFiles 方法来获取文件名数组非常简单。同时,该方法还提供了各种参数来实现更为精细的搜索策略,可以满足不同用户的需求。