C #: Произошла ошибка, когда я хочу сохранить файл через SaveFileDialog? - PullRequest
0 голосов
/ 30 декабря 2018

У меня небольшая проблема с моим кодом 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 Ответ

0 голосов
/ 30 декабря 2018

Вы устанавливаете saveFileDialog.CheckFileExists = true; Это заставляет диалоговое окно показывать именно это предупреждение, если файл не существует.Обычно вы устанавливаете значение true для диалогов Open, а не для диалогов Save.saveFileDialog.OverwritePrompt с другой стороны, обычно устанавливается в true при сохранении.

...