2012-05-23 3 views
0

Je souhaite spécifier un chemin virtuel d'un fichier mais je ne suis pas en mesure de le faire.Comment spécifier un chemin de fichier dans ASP.NET MVC

Voici mon code:

int Course_Id = 1; 
int PortfolioID=1; 
int ChandidateID=1; 

string filepath = Server.MapPath("~/ePortfolio/PortFolioContent/" + Course_Id + "/Assignments/Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg"); 

if(System.IO.File.Exists((filepath))) 
{        
    ViewBag.Thumbnail = filepath; 
} 

Quand j'utilise Server.MapPath il est l'extraction de données à partir d'un autre chemin:
Mon chemin original est:
E: \ HOBBYHOMES (E-PORTFOLIO) \ HobbyHomesWebApp \ ePortfolio \ PortFolioContent \ 1 \ missions
mais il prend ce chemin
E: \ HOBBYHOMES (E-PORTFOLIO) \ HobbyHomesWebApp \ ActivityPostin \ Images \ ePortfolio \ PortFolioContent \ 1 \ missions \ Exhb_1_1.jpg
I m pas sous tanding pourquoi cela Workin so.Please me aider

+1

Je n'ai pas une bonne solution pour vous, mais voici pourquoi ce que vous avez essayé jusqu'ici ne fonctionne pas. Je ne pense pas ~ se développe à n'importe quoi dans les chemins de fichiers sur Windows - certains shells de commande le font mais pas le système de fichiers lui-même. '..' sera basé sur le répertoire de travail actuel (qui est probablement le répertoire de l'exécutable que vous exécutez, ou quelque chose d'aussi inutile). – SirPentor

Répondre

2

Essayez string filepath = Server.MapPath("~/... ...jpg");

+0

hey thanx 4 d réponse .. j'ai utilisé votre méthode ur mais toujours le problème n'est pas résolu. S'il vous plaît voir que j'ai mis à jour ma question. – user1274646

0

Vous pouvez utiliser @ Url.Content ("~/contenu/Images/YourImageName.png")

+0

hey thanx 4 d réponse mais wats le problème avec ce chemin .. je suis tenu d'utiliser ce chemin seulement – user1274646

+0

S'il vous plaît voir que j'ai mis à jour ma question. Votre – user1274646

+0

allez pour le chemin suivant chaîne CheminFichier = Server.MapPath ("~/ePortfolio/ePortfolio/PortFolioContent /" + Course_Id + "/ missions/Exhb_" + PortfolioID + "_" + ChandidateID + ".jpg"); 1) E: \ HOBBYHOMES (E-portefeuille) \ HobbyHomesWebApp \ ePortfolio \ PortFolioContent \ 1 \ missions 2) E: \ HOBBYHOMES (E-portefeuille) \ HobbyHomesWebApp \ ActivityPostin \ Images \ ePortfolio \ PortFolioContent \ 1 \ missions \ Exhb_1_1.jpg Je ne peux pas voir le dossier e-portefeuille. Pouvez-vous s'il vous plaît mettre à jour votre question à nouveau et quel chemin exact vous voulez? Selon moi, vous voulez le 2e chemin et obtenir le premier chemin. –

0

Essayez de faire quelque chose comme ceci:

Path.Combine(Server.MapPath("~/"),("ePortfolio\\PortFolioContent\\" + Course_Id + "\\Assignments\\Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg")); 

En théorie, il en résulte la même réponse qui vous a échoué précédemment. En pratique, cela peut donner une réponse complètement différente.

Il y a aussi une question récente ici (que je ne trouve pas pour le moment) qui souligne que parfois Server.MapPath ("~/.. etc ..") se comporte mal sur les chemins de requêtes réécrites. Est-ce que vous réécrivez la requête qui tente de former ce chemin?

+0

nopes je l'appelle à nouveau je l'ai écrit comme ça string filepath = Server.MapPath ("~/ePortfolio/PortFolioContent/"+ Course_Id +"/Affectations/Exhb_ "+ item.PortfolioID +" _ "+ item.ChandidateID +" .jpg "); plus tôt je ah nt placé dans le dossier d'où il était en cours d'exécution, ce qui peut poser problème.alors maintenant je l'ai eu le travail :) – user1274646

Questions connexes