ASP.NET: Path.Combine с относительными путями - PullRequest
2 голосов
/ 19 июля 2009

Я пытаюсь преобразовать "~ / Uploads / Images /" в абсолютный путь, из которого я могу создать FileStream. Я пробовал VirtualPathUtility и Path.Combine, но, похоже, ничего не дает мне правильный путь. Самым близким, что я получил, был VirtualPathUtility.ToAppRelative, но это было просто местоположение файла как прямого потомка C:.

Должен быть способ сделать это.

1 Ответ

8 голосов
/ 19 июля 2009

Вы ищете метод MapPath.

// get the path in the local file system that corresponds to ~/Uploads/Images
string localPath = HttpContext.Current.Server.MapPath("~/Uploads/Images/");

Используйте его вместе с Path.Combine для создания пути к файлу:

string fileName = Path.Combine(
                      HttpContext.Current.Server.MapPath("~/Uploads/Images/"),
                      "filename.ext");
using (FileStream stream = File.OpenRead(fileName))
{
   // read the file
}
...