Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I save the XML contents of an XDocument as an .xml file?

I have an XDocument class with the XML contents already made. I basically want to open a SaveFileDialog, have the user choose a folder (not a file) in which to save the contents as an .xml file.

I'm having some difficulty doing so:

a) How can I use the SaveFileDialog to prompt the user to select a folder? I've only been able to use it to get a user to select a file.

b) How do I extract the chosen path from SaveFileDialog?

c) Once I have the path, how can I save the contents of the XDocument? There's a method called Save that requires a Stream - how do I build the stream using the path? (This might be a basic question, I have almost no IO experience)

like image 939
Daniel Avatar asked Apr 07 '12 19:04

Daniel


1 Answers

a) You don't want to select a Folder, but a file name (Save*File*Dialog)

b) SaveFileDialog.FileName

c) Look at different overloads : you have XDocument.Save(string fileName). No need to have a stream, you can have a fileName (oh, you got it in SaveFileDialog)

EDIT : you mean user can't change the name of the file ? then

a) FolderBrowserDialog

b) FolderBrowserDialog.SelectedPath

c) XDocument.Save(FolderBrowserDialog.SelectedPath + "/" + THENAMEOFYOURFILETHATUSERCANTCHANGE)

(EDIT 2 : Path.Combine is more elegant in c) ).

like image 81
Raphaël Althaus Avatar answered Sep 28 '22 15:09

Raphaël Althaus