путь к файлу с использованием C # - PullRequest
1 голос
/ 10 июня 2011

У меня есть служба Windows, которая использует метод из библиотеки классов с тем же решением asp.net. в библиотеке классов у меня есть метод со следующей строкой:

reader = XmlReader.Create(HttpContext.Current.Server.MapPath("~/TestDevice/Data.xml"), settings);

Когда контроль приходит к этой линии. Я получаю исключение. Я попытался отладить код и обнаружил, что когда служба пытается получить доступ к этому методу, то HttpContext.Current.Server имеет значение null. Что такое альтернативный синтаксис.

Я попытался получить доступ к этому методу библиотеки классов из веб-приложения, и он отлично работает.

System.IO.Path.GetFullPath("/TestDevice/Data.xml") возвращает C:\\TestDevice\\Data.xml вместо фактического пути к каталогу

Я хочу получить полный путь к папке.

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

Ответы [ 3 ]

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

http://msdn.microsoft.com/en-us/library/aa457089.aspx

string path;
path = System.IO.Path.GetDirectoryName( 
  System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );
2 голосов
/ 10 июня 2011

Вам потребуется файл конфигурации, для которого может быть задан «корневой» каталог.Это позволит службе Windows знать, в какой каталог помещать файлы, независимо от того, где находится исполняемый файл, и независимо от того, где настроен сайт asp.net.

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

Я не думаю, что ~ будет работать в этом случае, вам нужно будет указать относительный путь. Что-то вроде "../../TestDevice/Data.xml" должно работать.

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