Andrew Van Den Brink
Andrew Van Den Brink

Reputation: 123

ASP.Net vNext App_Data folder

Similar question to the one found here: ASP.NET MVC - Find Absolute Path to the App_Data folder from Controller.

Is App_Data folder gone? Server.MapPath seems to be gone too.

I tried to achieve the same results with Url.Content, but it doesn't seem to be working.

Upvotes: 7

Views: 3570

Answers (2)

Mihai Dinculescu
Mihai Dinculescu

Reputation: 20033

We do have App_Data in vNext.

This should still work

string path = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();

As for Server.MapPath equivalents you can use AppDomain.CurrentDomain.BaseDirectory and build your path from there.

You can also use the IApplicationEnvironment service

private readonly IApplicationEnvironment _appEnvironment;

public HomeController(IApplicationEnvironment appEnvironment)
{
    _appEnvironment = appEnvironment;
}

public IActionResult Index()
{
    var rootPath = _appEnvironment.ApplicationBasePath;
    return View();
}

IHostingEnvironment is the moral equivalent of the IApplicationEnvironment for web applications. For PhysicalFileSystem, IHostingEnvironment falls back to IApplicationEnvironment.

private readonly IHostingEnvironment _hostingEnvironment;

public HomeController(IHostingEnvironment hostingEnvironment)
{
    _hostingEnvironment = hostingEnvironment;
}

public IActionResult Index()
{
   var rootPath = _hostingEnvironment.MapPath("APP_DATA");
   return View();
}

Upvotes: 8

Vitaly
Vitaly

Reputation: 2125

MapPath exists in IHostingEnvironment

private readonly IHostingEnvironment _env;
public HomeController(IHostingEnvironment env)
{
    _env = env;
}

public IActionResult Index()
{
   var dataFolderPath = _env.MapPath("APP_DATA");
   return View();
}

Upvotes: 4

Related Questions