Cela devrait être très simple, mais j'ai essayé beaucoup de solutions postées sur internet alors j'ai pensé que je vais essayer ici. J'ai une application Web VS 2008 dont j'ai besoin pour capturer le chemin complet du fichier (répertoires et nom de fichier) à partir du fichier sélectionné. Ainsi, l'utilisateur sélectionne un fichier puis clique sur l'un des boutons qui transfère le contrôle à mon code pour le traitement. Alors, comment puis-je obtenir le chemin du fichier? Je peux obtenir le nom du fichier, mais pas le chemin. Merci!Comment renvoyer le chemin de fichier complet dans une application Web C#/ASP.NET?
Répondre
Essayez d'utiliser Server.MapPath. C'est beaucoup mieux à utiliser dans les applications Web.
HTH
Merci Raja, mais cela n'a pas fonctionné pour moi. Le chemin de fichier que j'essaye d'obtenir est simplement: C: \ input_file_contacttype.mdf Mais votre commande renvoie: \t \t "C: \\ Documents et paramètres \\ Admin \\ Mes documents \\ Visual Studio 2008 \\ Projets \\ AddFileToSQL \\ AddFileToSQL \\ fichier_entrée_contacttype.mdf "\t" C: \\ Documents et paramètres \\ Admin \\ Mes documents \\ Visual Studio 2008 \\ Projets \\ AddFileToSQL \\ AddFileToSQL \\ input_file_contacttype.mdf "\t string – salvationishere
Vous ne pouvez pas accéder aux fichiers en dehors de votre répertoire virtuel car il s'agirait d'une exception de sécurité. Sinon, vous devez donner un accès explicite au compte ASPNet pour ce dossier particulier. Ainsi, au lieu d'accéder au fichier depuis C: il est préférable d'accéder au fichier depuis votre répertoire virtuel. Cela aiderait lorsque vous déployez le site également. – Raja
Raja, merci pour ce conseil utile. Juste une question de plus maintenant. Je l'ai déplacé vers le répertoire virtuel ci-dessus et maintenant je peux voir ce chemin complet listé dans ma fenêtre Watch. Cependant, toutes les chaînes que j'ai essayées n'existent pas dans ce contexte. Comment puis-je les réparer pour stocker le chemin complet dans une variable de chaîne? C'est ce que j'ai actuellement: string fullpath = Request.PhysicalApplicationPath; chaîne fullpath2 = System.Web.HttpRuntime.AppDomainAppVirtualPath; chaîne fullpath3 = Server.MapPath (uploadFile.PostedFile.FileName); – salvationishere
string fullpath = Request.PhysicalApplicationPath;
David, cela n'a pas fait ce que je voulais. Il retourne: \t \t Request.PhysicalApplicationPath \t "C: \\ Documents and Settings \\ admin \\ Mes documents \\ Visual Studio 2008 \\ Projets \\ \\ AddFileToSQL AddFileToSQL \\" \t chaîne Alors, comment dois-je juste retourner c: \ répertoire? – salvationishere
Voir le commentaire de Raja sur l'exception de sécurité. Lorsque vous déboguez votre application dans VS, elle s'exécute dans le chemin que vous avez mentionné. Si vous avez besoin d'accéder à un fichier dans c: \, vous devrez le spécifier dans le code ou dans votre web.config –
David, pourriez-vous lire la réponse que j'ai donnée à Raja? Savez-vous comment résoudre ce problème? – salvationishere
Are u en utilisant le contrôle FileUpload de Asp.Net – Amitabh