Доступ к файлу в App_Data из класса в папке App_Code

В ASP.Net есть папка app_data, недоступная для пользователей через Интернет. Я хотел бы сохранить файл в этой папке и прочитать из этого файла с помощью класса, который у меня есть в папке App_Code.

Имейте в виду, что текущий рабочий каталог здесь будет каталогом, таким как "c: \", "c:\windows\system32 \" и т.д., а не каталог приложения. Так что что-то вроде "../App_Data/somefile" не работает.

Должно быть что-то простое, что я упускал из виду, как программно обращаться к файлам в папке App_Data​​p >

Как я могу это сделать?

Ответ 1

Вы можете получить доступ к папке App_Data следующим образом:

string appdatafolder = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "App_Data");

Я понимаю, что это использует объект HttpContext, однако, если вы пишете этот код внутри пользовательского поставщика членства ASP.NET(что-то, что я делал сам несколько раз), у вас не должно возникнуть проблемы с использованием HttpContext объект.

Ответ 2

Вы говорите, что у вас нет доступа к объекту контекста, но неясно, почему это было бы.

Если ваш код работает в ответ на запрос, вы можете получить доступ к контексту как: -

HttpContext.Current

В противном случае вы можете перейти к корневому физическому пути для приложения, используя: -

HttpRuntime.AppDomainAppPath