Подтвердить что ты не робот

Получение относительного виртуального пути с физического пути

Как я могу получить относительный виртуальный путь с физического пути в asp.net? Обратный метод выглядит следующим образом:

Server.MapPath("Virtual Path Here");

Но что такое обратное верхнему методу?

4b9b3361

Ответ 1

Возможно, этот вопрос - это то, что вы ищете. Там они предлагают:

String RelativePath = AbsolutePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty);

Ответ 2

    public static string MapPathReverse(string fullServerPath)
    {            
        return @"~\" + fullServerPath.Replace(HttpContext.Current.Request.PhysicalApplicationPath,String.Empty);
    }

Ответ 3

Вы также можете сделать что-то вроде этого:

string relativePath = absolutePath.Replace(HttpContext.Current.Server.MapPath("~/"), "~/").Replace(@"\", "/");

Преимущество состоит в том, что вам не нужно HttpContext.Current.Request.

Ответ 4

Request.ServerVariables["APPL_PHYSICAL_PATH"]

отлично, но не всегда. Он доступен только в том случае, если есть HTTP-запрос.

С другой стороны, вызов

HostingEnvironment.ApplicationPhysicalPath

всегда.