Dejme tomu, že jsme v hostovaném prostředí a víme, že je na disku zhruba následující adresářová struktura:
<nevíme>/Zakaznik/
<nevíme>/Zakaznik/wwwroot/
<nevíme>/Zakaznik/data/
…a potřebujeme se z webové aplikace dostat na soubory ve složce ../data/.
Na problém narazíme, pokud bychom použili
Server.MapPath("../data/cosi.xyz"); Server.MapPath("/../data/cosi.xyz"); Server.MapPath("~/../data/cosi.xyz");
…dostaneme výjimku HttpException: Cannot use a leading .. to exit above the top directory.
Pomoc je snadná, pokud máme na cílové místo opravdu přístupová práva, pak stačí použít:
Path.Combine(Server.MapPath("/"), "../data/cosi.xyz")
…a jsme tam.