ASP.NET应用程序代码背后的相对路径
ASP.NET新手我不确定是否是我的问题的最佳解决方案。我有一行代码,如:ASP.NET应用程序代码背后的相对路径
xDoc.Load("Templates/template1.cfg");
xDoc是一个XmlDocument
。在我的项目中,顶层有一个名为Templates的目录。当我以调试模式运行项目时,我得到一个DirectoryNotFoundException
,显然它正在寻找C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\Templates
中的模板目录。
如何正确指向该目录而不对其进行硬编码?
Server.MapPath
- 返回相对路径的路径; ~
确保相对路径与应用程序根目录相关
xDoc.Load(Server.MapPath("~/Templates/template.cfg"));
谢谢。你和@asawyer是现货。问题解决了。 – kmarks2 2012-03-07 15:25:04
这么简单,但仍然正是我需要的。这非常有帮助。谢谢 – 2016-06-13 07:49:24
xDoc.Load("~/Templates/template.cfg");
可能工作?
我可能会使用
xDoc.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Templates/Template.cfg"));
这使得你的XML独立ASP.NET的加载代码。如果您要在Windows窗体应用程序中重新使用它,则会为包含Windows窗体exectuable的目录提供相对路径。
尝试:
xDoc.Load(Server.MapPath("~/Templates/template1.cfg"));
你看过'Server.MapPath'吗? – asawyer 2012-03-07 14:18:42