在 C# 中,可以使用 System.IO 命名空间中的 Directory.GetFiles 方法来列出目录中的所有文件。该方法返回指定目录中所有文件的路径数组。
使用Directory.GetFiles列出目录中的所有文件
示例:
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = @"C:\exampleFolder"; // 目标目录路径
try
{
// 获取目录中的所有文件
string[] files = Directory.GetFiles(directoryPath);
Console.WriteLine("Files in the directory:");
foreach (string file in files)
{
Console.WriteLine(file); // 打印每个文件的完整路径
}
}
catch (DirectoryNotFoundException)
{
Console.WriteLine("Directory not found.");
}
catch (UnauthorizedAccessException)
{
Console.WriteLine("Access denied.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
说明:
- Directory.GetFiles:该方法返回一个字符串数组,包含指定目录下所有文件的路径。可以选择提供一个搜索模式来过滤特定类型的文件。如果目录为空,返回一个空数组。如果目录不存在,抛出 DirectoryNotFoundException 异常。如果没有访问权限,抛出 UnauthorizedAccessException 异常。
- 搜索模式:Directory.GetFiles 可以接受第二个参数,用来定义一个搜索模式(例如过滤特定的文件扩展名)。
示例:列出特定类型的文件
string[] txtFiles = Directory.GetFiles(directoryPath, "*.txt");
该代码将仅返回目录中扩展名为 .txt 的文件。
其他功能:
- 递归列出所有文件:如果需要递归地列出所有子目录中的文件,可以使用 Directory.GetFiles 的重载方法,提供 SearchOption.AllDirectories。
示例:递归列出所有文件
string[] allFiles = Directory.GetFiles(directoryPath, "*.*", SearchOption.AllDirectories);
总结:
- Directory.GetFiles 是列出目录中文件的简单方法。
- 可以通过搜索模式来过滤文件类型。
- 通过 SearchOption.AllDirectories 可以递归查找所有子目录中的文件。