Directory.GetFiles方法是C#中用于获取文件列表的一个函数。它可以获取指定目录中的所有文件,并返回一个包含这些文件的字符串数组。本文将着重介绍如何使用Directory.GetFiles方法来获取文件列表。
1. 函数原型
Directory.GetFiles方法的函数原型为:
```c#
public static string[] GetFiles(string path);
```
其中,path参数指定要搜索的目录的路径。如果path为空,则默认使用当前目录。
该方法返回一个字符串数组,包含指定目录中的所有文件的完整路径名称。数组中的文件是以字母顺序排列的。
2. 示例代码
我们可以通过以下代码来示范如何使用Directory.GetFiles方法:
```c#
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
try
{
string[] files = Directory.GetFiles(@"E:\example");
foreach (string file in files)
{
Console.WriteLine(file);
}
}
catch (Exception e)
{
Console.WriteLine("An error occurred: " + e.Message);
}
Console.ReadLine();
}
}
```
在这个例子中,我们首先使用Directory.GetFiles方法来获取"E:\example"目录中的所有文件。获取到文件名后,我们使用foreach循环逐个遍历所有文件,并使用Console.WriteLine方法在控制台中输出文件名。如果操作过程中出现了异常,我们会捕获异常并输出相关信息到控制台。
3. GetFiles的重载方法
Directory.GetFiles方法还有另外两个重载方法:
```c#
public static string[] GetFiles(string path, string searchPattern);
public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption);
```
第一个重载方法中,searchPattern是指要搜索的文件名称的通配符。例如,如果我们想要获取所有以".txt"结尾的文件,我们可以使用以下代码:
```c#
string[] files = Directory.GetFiles(@"E:\example", "*.txt");
```
第二个重载方法中,searchOption参数指定了搜索目录的深度。如果searchOption设置为SearchOption.TopDirectoryOnly,则只搜索指定目录中的文件;如果设置为SearchOption.AllDirectories,则搜索指定目录中的文件以及所有子目录中的文件。例如,如果想要获取指定目录以及所有子目录中的所有".txt"文件,我们可以使用以下代码:
```c#
string[] files = Directory.GetFiles(@"E:\example", "*.txt", SearchOption.AllDirectories);
```
4. 相关注意事项
在使用Directory.GetFiles方法获取文件列表时,需要注意以下几个问题:
- 如果指定的目录不存在,将会抛出DirectoryNotFoundException异常。
- 如果程序没有足够的权限访问指定目录,将会抛出UnauthorizedAccessException异常。
- 搜索目录以及查询的通配符均区分大小写。
- 在遍历文件时,我们需要确保文件已经关闭。当文件正在使用时,我们可以使用using语句或直接调用Close方法来关闭文件。
5. 结语
Directory.GetFiles方法是一个十分有用的函数,可以用于获取指定目录下的文件列表。通过熟练掌握该方法的使用,我们可以更加高效地处理文件操作。