Windows应用程序中“HttpContext.Current.Server.MapPath”的替代方法是什么,它在Web应用程序中使用。我应该在Windows应用程序中使用什么来访问文件。
[编辑] 窗口应用程序中的替代是什么?
reader = XmlReader.Create(
@"D:\EnviroTrack\EnviroTracker.Web\TestDevice\Data.xml", settings);
请建议
答案 0 :(得分:3)
您可以使用普通的Path方法。 MapPath
有助于将虚拟路径转换为Web服务器上的物理路径。在winforms中不需要这种转换。您可能正在寻找Assembly.GetExecutingAssembly().Location,它返回正在执行的程序集的位置。
编辑 - 您更新的问题应该在Winform中运行。
XmlReader.Create有很多重载,其中一个是(string, XmlReaderSettings)
。这是您在问题中使用的超载。您可以使用相同的方法,但如果您愿意,可以使用不同的目录。
reader = XmlReader.Create(@"C:\Data.xml", settings);
要获取正在执行的程序集的目录,可以使用AppDomain.CurrentDomain.BaseDirectory。所以它可能是这样的:
reader = XmlReader.Create(AppDomain.CurrentDomain.BaseDirectory + "Data.xml", settings);
答案 1 :(得分:0)
我认为Assembly.GetExecutingAssembly.Location
会返回exe
或dll
名称,暂时没有尝试过此功能,因此无法确定。
Application.StarupPath
可能会完成这项工作。