Лучший способ реализовать доступ к файлам в C # - PullRequest
3 голосов
/ 24 октября 2008

Сценарий - мне нужен доступ к шаблону HTML, чтобы сгенерировать электронную почту из моего уровня бизнес-логики. Это библиотека классов, которая содержит подпапку с файлом. Когда я попробовал следующий код в модульном тесте:

string FilePath = string.Format(@"{0}\templates\MyFile.htm", Environment.CurrentDirectory);
string FilePath1 = string.Format(@"{0}\templates\MyFile.htm", System.AppDomain.CurrentDomain.BaseDirectory);

Он использовал C: \ WINNT \ system32 \ или каталог временных папок ASP.NET.

Как лучше всего получить доступ к этому файлу без использования файла app.config или web.config?

[Используется служба WCF]

Ответы [ 4 ]

6 голосов
/ 24 октября 2008

Вы запускаете это из приложения ASP.Net, верно? Вместо этого используйте Server.MapPath().

Также взгляните на System.IO.Path.Combine() для объединения путей.

[Изменить] Поскольку вы не можете использовать System.Web, попробуйте это:

System.Reflection.Assembly.GetExecutingAssembly().Location

Или GetEntryAssembly().

1 голос
/ 08 ноября 2010

У меня это работает на моем сайте! Я не работал только над этим последние 2 года !!!

Я добавил это в свой блок system.serviceModel web.config. Похоже, что все пути относительно того, где установлен ваш сервис.

  <system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">

лучше поздно, чем никогда?

1 голос
/ 25 октября 2008

Я верю, что вы ищете

System.IO.Path.GetDirectoryName(Application.ExecutablePath);
0 голосов
/ 24 октября 2008

Используйте

System.Web.HttpServerUtility.MapPath( "~/templates/myfile.htm" )
...