我的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对话框中的“保存”按钮后,总是会收到此错误消息。 :(
希望你们能在这里帮助我。
答案 0 :(得分:4)
您正在设置saveFileDialog.CheckFileExists = true;
,如果文件不还不存在,这将使对话框准确显示此警告。通常,对于“打开”对话框,而不是“保存对话框”,通常将其设置为true。另一方面,saveFileDialog.OverwritePrompt
通常在保存时设置为true。