C#: Произошла ошибка, когда я хочу сохранить файл через SaveFileDialog?
У меня есть небольшая проблема с моим кодом C#.
В моем методе я создаю XDocument/XML-файл, а после этого я хочу сохранить его с помощью SaveFileDialog. Все работает нормально, пока я не нажимаю кнопку "Сохранить" в диалоговом окне, а затем появляется сообщение об ошибке "Файл C:\Users\ Пользователь \ Рабочий стол \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 ответ
Вы устанавливаете saveFileDialog.CheckFileExists = true;
Это заставляет диалог отображать именно это предупреждение, если файл еще не существует. Обычно вы устанавливаете значение true для диалогов Open, а не для диалогов Save. saveFileDialog.OverwritePrompt
с другой стороны, обычно устанавливается в true при сохранении.