c#GetFiles
时间: 2025-02-25 22:59:28 浏览: 19
C# 中 GetFiles
方法的使用
在 C# 中,DirectoryInfo.GetFiles()
和 Directory.GetFiles()
是两个用于获取指定目录下文件的方法。前者返回的是 FileInfo[]
数组,而后者则是一个字符串数组。
使用 Directory.GetFiles()
此静态方法允许通过路径参数来检索特定模式下的所有文件列表:
string[] files = Directory.GetFiles(@"C:\path\to\directory", "*.txt");
foreach (var file in files)
{
Console.WriteLine(file);
}
上述代码会打印出给定路径下所有的 .txt
文件[^1]。
使用 DirectoryInfo.GetFiles()
对于更复杂的操作,比如递归遍历子文件夹中的文件,则可以考虑使用 DirectoryInfo
类型的对象调用其成员函数 GetFiles()
:
DirectoryInfo dir = new DirectoryInfo(@"C:\path\to\directory");
// 只匹配当前层级的 .pdf 文件
FileInfo[] pdfs = dir.GetFiles("*.pdf");
foreach (var pdf in pdfs)
{
Console.WriteLine(pdf.Name);
}
// 匹配整个树结构里的 .jpg 图片
SearchOption searchOption = SearchOption.AllDirectories;
FileInfo[] images = dir.GetFiles("*.jpg", searchOption);
foreach (var img in images)
{
Console.WriteLine(img.FullName);
}
这里展示了如何利用通配符以及可选枚举值 SearchOption
来控制搜索范围[^2]。
结合其他条件筛选文件
除了基本的功能外,还可以结合 LINQ 查询表达式进一步过滤结果集:
using System.Linq;
...
var largeImages = from f in di.GetFiles("*.*", SearchOption.AllDirectories)
where f.Length > 1_000_000L && f.Extension.Equals(".jpg", StringComparison.OrdinalIgnoreCase)
select f;
foreach (var li in largeImages)
{
Console.WriteLine($"{li.Name} ({li.Length / 1024:N0} KB)");
}
这段程序仅选择了大小超过一兆字节的大尺寸 JPG 图像并显示它们的名字及其近似体积(以千字节为单位)。注意这里的比较忽略了字母大小写差异[^3]。
阅读全文
相关推荐


















