C#:当我想通过 SaveFileDialog 保存文件时发生错误?

C#: Error occuring when I want to save a file via SaveFileDialog?

我的 C# 代码有点问题。

在我的方法中,我创建了一个 XDocument/XML-File 之后,我想通过 SaveFileDialog 保存它。 它一切正常,直到我单击对话框中的 "Save"-按钮,然后出现错误,显示“文件 C:\Users\User\Desktop\XMLOutput.xml 不存在。 检查是否指示了正确的文件名。"

所以这是我的代码:

public void Create_XMLFile()
    {
        XDocument xDoc = new XDocument(
            new XElement("itemlist",
                new XElement("item",
                    new XAttribute("article", "1"),
                    new XAttribute("quantity", "200"),
                    new XAttribute("price", "35")))
        );

        SaveFileDialog saveFileDialog = new SaveFileDialog();
        saveFileDialog.InitialDirectory = "C:\";
        saveFileDialog.CheckFileExists = true;
        saveFileDialog.CheckPathExists = true;
        saveFileDialog.DefaultExt = "xml";
        saveFileDialog.Filter = "XML (*.xml)|*.xml|All (*.*)|*.*";
        saveFileDialog.FilterIndex = 2;
        saveFileDialog.RestoreDirectory = true;
        saveFileDialog.FileName = "XMLOutput";

        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {                
            xDoc.Save(saveFileDialog.FileName);
        }
    }

// Button, which triggers the method above
private void Export_Click(object sender, RoutedEventArgs e)
    {
        Create_XMLFile();
    }

是啊,我的代码哪里出了问题?我只是想保护 XML-File 用户选择的路径。但正如我所说,在单击 Windows-对话框中的 "Save"-按钮后,我总是收到此错误消息。 :(

希望大家能帮帮我。

您正在设置 saveFileDialog.CheckFileExists = true; 如果文件 存在,这将使对话框准确显示此警告。对于“打开”对话框,您通常会将此设置为 true,而不是“保存对话框”。另一方面,saveFileDialog.OverwritePrompt 通常在保存时设置为 true。