You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#指定文件夹路径查找特定扩展名文件并获取文件名

无需遍历筛选指定扩展名文件的解决方案

你可以利用DirectoryInfo类的重载方法或LINQ查询来直接获取目标文件,避免手动遍历所有文件:

方法1:使用GetFiles的搜索模式重载

直接通过搜索模式过滤扩展名,返回的结果已经是符合要求的文件,不需要额外遍历:

var directory = new DirectoryInfo(FolderPath);
// 传入"*.pdf"作为搜索模式,只返回PDF文件
FileInfo[] pdfFiles = directory.GetFiles("*.pdf");

if (pdfFiles.Length > 0)
{
    // 获取第一个匹配文件的无扩展名文件名
    string targetFileName = Path.GetFileNameWithoutExtension(pdfFiles[0].Name);
    // 后续可对文件名进行操作
}

如果需要忽略大小写匹配(比如同时匹配.PDF、.pdf),可以使用带搜索选项的重载:

FileInfo[] pdfFiles = directory.GetFiles("*.pdf", SearchOption.TopDirectoryOnly);

方法2:使用LINQ延迟查询(高效找首个匹配项)

如果只需要找到第一个符合条件的文件,用EnumerateFiles配合LINQ的FirstOrDefault更高效,因为它会在找到第一个匹配项后立即停止,无需加载所有文件到内存:

var directory = new DirectoryInfo(FolderPath);
var targetFile = directory.EnumerateFiles()
                          .FirstOrDefault(f => f.Extension.Equals(".pdf", StringComparison.OrdinalIgnoreCase));

if (targetFile != null)
{
    string targetFileName = Path.GetFileNameWithoutExtension(targetFile.Name);
}

获取所有匹配的文件名

如果需要收集所有指定扩展名文件的无扩展名名称,可以用:

var directory = new DirectoryInfo(FolderPath);
var allTargetFileNames = directory.GetFiles("*.pdf")
                                 .Select(file => Path.GetFileNameWithoutExtension(file.Name))
                                 .ToList();

内容的提问来源于stack exchange,提问作者priyanka manogaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 20:50:32