HttpContext.Current.Server.MapPath альтернатива в приложении Windows - PullRequest
2 голосов
/ 10 июня 2011

что является альтернативой «HttpContext.Current.Server.MapPath» в приложении Windows, которое используется в веб-приложении. Что я должен использовать в приложении Windows для доступа к файлу.

[EDIT] Что является альтернативой в оконном приложении?

reader = XmlReader.Create(
            @"D:\EnviroTrack\EnviroTracker.Web\TestDevice\Data.xml", settings);

Пожалуйста, предложите

Ответы [ 2 ]

3 голосов
/ 10 июня 2011

Вы можете использовать обычные Path методы. MapPath помогает преобразовать виртуальный путь в физический путь на веб-сервере. Там нет необходимости для этого преобразования в winforms. Возможно, вы ищете Assembly.GetExecutingAssembly (). Расположение , которое возвращает местоположение выполняемой сборки.

Изменить - Ваш обновленный вопрос должен работать в Winform. XmlReader.Create имеет довольно много перегрузок, одна из них (string, XmlReaderSettings). Это перегрузка, которую вы используете в своем вопросе. Вы можете использовать тот же метод, но другой каталог, если хотите.

reader = XmlReader.Create(@"C:\Data.xml", settings);

Чтобы получить каталог исполняемой сборки, вы можете использовать AppDomain.CurrentDomain.BaseDirectory . Так что это может быть что-то вроде этого:

reader = XmlReader.Create(AppDomain.CurrentDomain.BaseDirectory + "Data.xml", settings);
0 голосов
/ 10 июня 2011

Я думаю, Assembly.GetExecutingAssembly.Location возвращает имя exe или dll, не пробовал эту функцию некоторое время, поэтому не уверен в этом.

Application.StarupPath может сделатьработа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...