C# 获取路径的文件
时间: 2025-05-12 17:34:17 浏览: 16
### C# 中获取指定路径下的所有文件列表
在 C# 编程语言中,可以利用 `System.IO` 命名空间中的类来操作文件和目录。以下是几种常见的方法用于获取指定路径下的所有文件列表。
#### 方法一:使用 `Directory.GetFiles`
通过调用 `Directory.GetFiles` 方法可以直接返回指定路径下所有的文件名称数组。如果需要递归遍历子目录,则可以通过设置参数 `SearchOption.AllDirectories` 来实现[^1]。
```csharp
using System;
using System.Collections.Generic;
using System.IO;
class Program
{
static void Main()
{
string dirPath = @"C:\Your\Directory\Path";
List<string> fileList = new List<string>(Directory.GetFiles(dirPath, "*.*", SearchOption.AllDirectories));
foreach (var file in fileList)
{
Console.WriteLine(file);
}
}
}
```
此代码片段展示了如何读取给定路径及其子目录内的所有文件,并将其存储到一个字符串列表中。
#### 方法二:使用 `DirectoryInfo` 和 `FileInfo`
另一种方式是创建一个 `DirectoryInfo` 对象表示目标文件夹,然后调用其成员函数 `GetFiles()` 返回该目录里的每一个文件对象作为 `FileInfo` 的集合[^2]。
```csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\Your\Directory\Path";
DirectoryInfo root = new DirectoryInfo(path);
FileInfo[] files = root.GetFiles();
foreach (FileInfo f in files)
{
Console.WriteLine($"File Name: {f.Name}, Full Path: {f.FullName}");
}
}
}
```
上述例子说明了怎样不仅得到文件的名字还能获得它们完整的绝对路径。
#### 方法三:筛选具有特定前缀或扩展名的文件
当只需要找到某些特殊类型的文档时(比如只找 `.txt` 或者名字以 `"log"` 开头的日志记录),可进一步定制查询条件[^3][^4]:
```csharp
using System;
using System.Linq;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = @"C:\Logs";
string extension = ".log";
var logFiles = Directory.EnumerateFiles(directoryPath, $"*{extension}", SearchOption.TopDirectoryOnly)
.Where(f => Path.GetFileNameWithoutExtension(f).StartsWith("error"));
foreach (string logFile in logFiles)
{
Console.WriteLine(logFile);
}
}
}
```
这里演示了一个场景——寻找当前日志目录里那些命名始于单词 “error” 并且是以“.log” 结束的实际错误报告档案.
---
### 总结
以上介绍了三种不同的技术手段去检索硬盘上的资源项目清单。每种都有各自适用场合以及优缺点,在实际开发过程中可以根据具体需求选取最合适的方案实施编码工作。
阅读全文
相关推荐
















