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

IConfigurationBuilder.Build()解析仅含扩展名的配置文件失败

问题:解析以点开头的无主文件名INI配置文件失败

使用以下C#代码解析INI配置文件:

var fullFilePath = @"c:\temp\.ext";
// var fullFilePath = @"c:\temp\my.ext"; // 此路径可正常工作
var builder = new ConfigurationBuilder().AddIniFile(fullFilePath).Build();

当路径指向常规名称文件(如C:\temp\my.ext)时代码正常运行,但指向以点开头的文件(如C:\temp\.ext,内容与常规文件一致)时,调用.Build()抛出异常:

The configuration file '.ext' was not found and is not optional.

注:问题可在控制台程序中复现,文件确实存在,且使用绝对路径。


解决方案1:通过文件流加载配置

问题源于AddIniFile的路径解析逻辑对以点开头的文件名处理异常,直接读取文件流并通过AddIniStream加载可绕过该问题:

var fullFilePath = @"c:\temp\.ext";
using var fileStream = new FileStream(fullFilePath, FileMode.Open, FileAccess.Read);
var builder = new ConfigurationBuilder()
    .AddIniStream(fileStream)
    .Build();

解决方案2:显式指定文件目录与名称

通过SetBasePath明确文件所在目录,再传入文件名,让配置构建器正确解析路径:

var fullFilePath = @"c:\temp\.ext";
var fileInfo = new FileInfo(fullFilePath);
var builder = new ConfigurationBuilder()
    .SetBasePath(fileInfo.DirectoryName)
    .AddIniFile(fileInfo.Name, optional: false, reloadOnChange: false)
    .Build();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:50:08