Utilisez ce code:
HttpContext.Current.Server.MapPath("~")
Référence détaillée:
Server.MapPath
spécifie le chemin d'accès relatif ou virtuel à mapper vers un répertoire physique.
Server.MapPath(".")
renvoie le répertoire physique actuel du fichier (par exemple aspx) en cours d'exécution
Server.MapPath("..")
renvoie le répertoire parent
Server.MapPath("~")
renvoie le chemin physique vers la racine de l'application
Server.MapPath("/")
renvoie le chemin physique vers la racine du nom de domaine (n'est pas nécessairement le même que la racine de l'application)
Un exemple:
Supposons que vous ayez dirigé une application de site Web ( http://www.example.com/ ) vers
C:\Inetpub\wwwroot
et installé votre application de boutique (sous-site Web comme répertoire virtuel dans IIS, marqué comme application) dans
D:\WebApps\shop
Par exemple, si vous appelez Server.MapPath
dans la demande suivante:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
puis:
Server.MapPath(".") returns D:\WebApps\shop\products
Server.MapPath("..") returns D:\WebApps\shop
Server.MapPath("~") returns D:\WebApps\shop
Server.MapPath("/") returns C:\Inetpub\wwwroot
Server.MapPath("/shop") returns D:\WebApps\shop
Si Path commence par une barre oblique avant (/) ou arrière (), la MapPath
méthode renvoie un chemin comme si Path était un chemin virtuel complet.
Si Path ne commence pas par une barre oblique, la MapPath
méthode retourne un chemin relatif au répertoire de la requête en cours de traitement.
Remarque: en C #, @ est l'opérateur de chaîne littérale verbatim signifiant que la chaîne doit être utilisée "telle quelle" et ne pas être traitée pour les séquences d'échappement.
Notes de bas de page
Server.MapPath(null)
et Server.MapPath("")
produira également cet effet.