2017-04-11 1 views
0

Ich habe this excellent Stack post über Server.MapPath() studiert, und ich kann nichts darin finden, das mich 2 Niveaus von der gegenwärtigen Position dauert.Server.MapPath() kann nicht 2 Ebenen gehen?

Server.MapPath("./"); // this works - current path 
Server.MapPath("../"); // this works - parent path 
Server.MapPath("/"); // this works - virtual root path (2 levels HIGHER than I need) 
Server.MapPath(".../"); // This fails 

Gibt es keine Möglichkeit, 2 Ebenen hoch zu gehen? (Das wäre das übergeordnete Element des übergeordneten Ordners.)

Ja, ich kann dies erreichen, indem ich zur virtuellen Wurzel gehe und dann parsing/combining, aber das scheint hackisch. Auf der Suche nach etwas eleganter oder kanonischer.

+0

Wäre es nicht '../../'? –

Antwort

3

In Windows gibt es keinen Pfad .../.

  • ./ bedeutet das aktuelle Verzeichnis
  • ../ eine Ebene über

Hinweis bedeutet: Sie denken, kann die Menge an . die Menge der Ebenen sind, aber das ist nicht so.

2 Ebenen oben sind ../../, 3 Ebenen ../../../ und so weiter.

3

.. geht auf Ordner, so ../../ wird zwei Ebenen und so weiter gehen.

Beachten Sie, dass Sie dadurch nicht aus dem Stammordner Ihrer Site gehen können: Wenn die Seite "/foo/bar.aspx" lautet, wird versucht, "../ .." zuzuordnen, wenn Ihre Site im Stammverzeichnis ist.

Verwandte Themen