为了账号安全,请及时绑定邮箱和手机立即绑定

该字符串未被识别为有效的 uri

该字符串未被识别为有效的 uri

C#
繁星coding 2022-07-23 17:20:19
当我运行我的方法时,我收到错误:System.ArgmentException:字符串未被识别为有效的 uriprivate void loadXMLBttn_Click(object sender, RoutedEventArgs e){    OpenFileDialog selectConfigFile = new OpenFileDialog();    selectConfigFile.Title = "Select an existing XML config file...";    selectConfigFile.InitialDirectory = @"C:\";    selectConfigFile.DefaultExt = ".xml";    selectConfigFile.Filter = "xml files|.xml|All files (*.*)|*.*";    var selectedFile = selectConfigFile.SafeFileName;    selectConfigFile.ShowDialog();    XDocument configFile = XDocument.Load(selectedFile);}
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

您收到此异常是因为您的selectedFile变量从未真正填充过。


在显示对话框并允许用户选择 XML 文件后,您需要填充selectedFile变量:


selectConfigFile.ShowDialog();

var selectedFile = selectConfigFile.SafeFileName;

XDocument configFile = XDocument.Load(selectedFile);


查看完整回答
反对 回复 2022-07-23
?
青春有我

TA贡献1784条经验 获得超8个赞

是的,问题是您在显示对话框之前设置了 selectedFile 。如果您将代码重写为这种方式,则可以100%解决问题:


private void loadXMLBttn_Click(object sender, RoutedEventArgs e)

{

    OpenFileDialog selectConfigFile = new OpenFileDialog()

    {

        Title = "Select an existing XML config file...",

        InitialDirectory = @"C:\",

        DefaultExt = "*.xml",

        Filter = "XML files|*.xml|All files (*.*)|*.*"

    };

    if (selectConfigFile.ShowDialog() == true)

    {

        var selectedFile = selectConfigFile.FileName;

        XDocument configFile = XDocument.Load(selectedFile);

    }

}

这将修复一个过滤器,该过滤器在您的示例中不起作用,它使文件对话框选项初始化程序更加清晰。此外,如果用户不选择任何文件 - 它不会尝试加载空字符串路径


查看完整回答
反对 回复 2022-07-23
  • 2 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信