Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How I use XDocument.Load() to get a file in the application directory

I have a XML file in a folder in the project. I would like to use XDocument.Load(string) but do I have to write the complete path to the application as part of the URI (such as in my example)?

XDocument xml = XDocument.Load("c:/users/myuser/documents/visual studio
2010/Projects/ErrorRegistro/Registro.xml");
like image 535
Fco Avatar asked Sep 08 '13 04:09

Fco


Video Answer


2 Answers

Another way that bypass the ressource issue is to add the file to project (same as the ressource solution), then click on the file and in the property tab choose "copy always" in copy to output path. That way the file will get copied to the output directory when you build and it's as simple as doing

 XDocument xml = XDocument.Load("Registro.xml");
like image 51
Ronan Thibaudau Avatar answered Sep 28 '22 04:09

Ronan Thibaudau


It would be better to add your XML file as a project resource: go to the properties of the project then to Resources tab. Choose Add Resource and add your file. Then you will be able to get your XDocument that way:

XDocument xml = XDocument.Parse(Properties.Resources.Registro);

If you want, however, to keep everything like you did you could maybe go with Reflection. See the answer here: How to read embedded resource text file

like image 20
Fabien Avatar answered Sep 28 '22 05:09

Fabien