mam kodKorzystanie Server.MapPath w MVC3
string xsltPath = System.Web.HttpContext.Current.Server.MapPath(@"App_Data") + "\\" + TransformFileName
Zwraca
C:\inetpub\wwwroot\websiteName\SERVICENAME\App_Data\FileName.xsl
Dlaczego otrzymuję ścieżkę do ServiceController, SERVICENAME
? Chcę ścieżkę do App_Data, który jest w
C:\inetpub\wwwroot\websiteName\App_Data\FileName.xsl
To działa. Czytałem artykuł o "wirtualnym root", ale nie podążałem za nim dobrze. http://www.dotnetperls.com/mappath Czy potrafisz zdefiniować ścieżki "bezwzględne" i "względne" oraz ich porównanie ze ścieżkami "fizycznymi" i "wirtualnymi"? –
@ P.Brian.Mackey: Absolute oznacza ścieżkę od katalogu głównego, na przykład "/ someTopDirectory/someSubDirectory". Względny oznacza ścieżkę, z której aktualnie się znajdujesz, więc jeśli jesteś w "someSubDirectory" i chcesz dostać się do "someTopDirectory", względną ścieżką jest ".." (przejdź do jednego katalogu). Ścieżki fizyczne są ścieżkami, tak jak je widzi system: "C: \ inetpub \ myApp \ someTopDirectory \ someSubDirectory". Ścieżki wirtualne są widoczne w aplikacji serwera WWW: "/ someTopDirectory/someSubDirectory". –
@ P.Brian.Mackey: Aby lepiej wyjaśnić sytuację, MapPath konwertuje ścieżkę wirtualną na ścieżkę fizyczną. W swoim parametrze ścieżki wirtualnej chcesz podać bezwzględną ścieżkę zamiast względnej. Znacznik wskazujący "root" dla bezwzględnej ścieżki w aplikacji internetowej to "~", czyli bezwzględny wirtualny root = "~ /". –