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

当我运行我的方法时,我收到错误:


System.ArgmentException:字符串未被识别为有效的 uri


private 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);

}


繁星coding
浏览 161回答 2
2回答

aluckdog

您收到此异常是因为您的selectedFile变量从未真正填充过。在显示对话框并允许用户选择 XML 文件后,您需要填充selectedFile变量:selectConfigFile.ShowDialog();var selectedFile = selectConfigFile.SafeFileName;XDocument configFile = XDocument.Load(selectedFile);

青春有我

是的,问题是您在显示对话框之前设置了 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);    }}这将修复一个过滤器,该过滤器在您的示例中不起作用,它使文件对话框选项初始化程序更加清晰。此外,如果用户不选择任何文件 - 它不会尝试加载空字符串路径
打开App,查看更多内容
随时随地看视频慕课网APP