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

时间:2018-12-30 15:46:57

标签: c# xml savefiledialog

我的C#代码有点问题。

在我的方法中,我创建一个XDocument / XML-File,然后,我想通过SaveFileDialog保存它。 一切正常,直到我单击对话框中的“保存”按钮,然后出现错误,提示“文件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文件。但是正如我所说,单击Windows对话框中的“保存”按钮后,总是会收到此错误消息。 :(

希望你们能在这里帮助我。

1 个答案:

答案 0 :(得分:4)

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