относительный путь с использованием C # - PullRequest
5 голосов
/ 12 мая 2011

Я использую c #. В моем проекте у меня есть папка XML, в которой у меня есть файл XML, скажем «file.xml» .. Я хочу использовать файл в моем проекте. Я хочу взять этот файл из самого текущего проекта, для этого я даю путь как:

  xmlDoc.Load(@"..\xml\file.xml");

но файл не берется. Это показывает некоторый путь "C:" .. Как я могу получить этот файл из самого проекта.

Ответы [ 3 ]

6 голосов
/ 12 мая 2011

Необходимо установить свойство Copy to Output Directory для файла в обозревателе решений, чтобы найти файл в папке с вашим EXE-файлом.

Вы можете написать

xmlDoc.Load(Path.Combine(typeof(MyClass).Assembly, "file.xml"));

Используется фактическое расположение файла EXE и будет работать независимо от текущего каталога.

EDIT : в ASP.Net вы должны поместить свой файл в папку App_Data (которая не является общедоступной), а затем написать

xmlDoc.Load(Server.MapPath("~/App_Data/file.xml"));
2 голосов
/ 12 мая 2011

Вы должны установить Copy to Output Directory на «копировать, если новее», и тогда вы можете использовать:

Path.Combine(Application.StartupPath, "file.xml");
0 голосов
/ 12 мая 2011
Path.Combine(typeof(MyClass).Assembly.Location.ToString(), "file.xml")
...