J'essaye d'obtenir le chemin absolu de certains fichiers dans une classe C #. Server.MapPath
fonctionne très bien bien sûr pour ASPX et leurs pages code-behind, mais cela n'existe pas dans un autre fichier de classe. J'ai essayé HostingEnvironment.MapPath()
, mais cela se plaint que le chemin virtuel relatif n'est pas autorisé. Des pensées?
System.Web
est déjà importé.
vous pouvez aussi utiliser:
si
est inaccessible
la source
Ne pouvez-vous pas simplement ajouter une référence
System.Web
et ensuite l'utiliserServer.MapPath
?Edit: De nos jours, je recommande d'utiliser la
HostingEnvironment.MapPath
méthode :C'est une méthode statique dans l'
System.Web
assemblage qui mappe un chemin virtuel vers un chemin physique sur le serveur. Il ne nécessite pas de référence àHttpContext
.la source
SI le fichier que vous essayez d'obtenir est l'emplacement d'assemblage d'un type. Mais si les fichiers sont relatifs à l'emplacement de l'assembly, vous pouvez l'utiliser avec l'
System.IO
espace de noms pour obtenir le chemin exact du fichier.la source
J'utilise aussi ceci:
la source
Maintenant, quand vous appelez la méthode depuis le codebehind
par exemple :
de cette façon, votre code est trop simple et avec une méthode, vous pouvez utiliser plusieurs chemins pour chaque appel :)
la source
Celui-ci m'a aidé
la source
Que vous exécutiez dans le contexte d'ASP.NET ou non, vous devriez pouvoir utiliser HostingEnvironment.ApplicationPhysicalPath
la source
Le server.mappath ("") fonctionnera sur la page aspx, si vous voulez obtenir le chemin absolu d'un fichier de classe, vous devez utiliser ceci-
la source