【发布时间】:2011-08-24 01:30:18
【问题描述】:
我正在使用 c#。在我的项目中,我有一个 xml 文件夹,其中有一个 xml 文件说“file.xml”.. 我想在我的项目中使用该文件。我想从当前项目本身中获取该文件,因为我将路径设置为:
xmlDoc.Load(@"..\xml\file.xml");
但它没有获取文件。 它显示了一些“C:”路径.. 如何从项目本身中检索此文件。
【问题讨论】:
标签: c# path relative-path
我正在使用 c#。在我的项目中,我有一个 xml 文件夹,其中有一个 xml 文件说“file.xml”.. 我想在我的项目中使用该文件。我想从当前项目本身中获取该文件,因为我将路径设置为:
xmlDoc.Load(@"..\xml\file.xml");
但它没有获取文件。 它显示了一些“C:”路径.. 如何从项目本身中检索此文件。
【问题讨论】:
标签: c# path relative-path
您应该在解决方案资源管理器中为文件设置Copy to Output Directory 属性,以便将文件转到包含您的 EXE 的文件夹中。
然后你就可以写了
xmlDoc.Load(Path.Combine(typeof(MyClass).Assembly, "file.xml"));
这使用 EXE 文件的实际位置,并且无论当前目录如何都可以工作。
编辑:在 ASP.Net 中,您应该将文件放在 App_Data 文件夹中(不可公开访问),然后写入
xmlDoc.Load(Server.MapPath("~/App_Data/file.xml"));
【讨论】:
您应该将Copy to Output Directory 设置为“如果较新则复制”,然后您可以使用:
Path.Combine(Application.StartupPath, "file.xml");
【讨论】:
Path.Combine(typeof(MyClass).Assembly.Location.ToString(), "file.xml")
【讨论】:
Location.ToString() 包含 MyClass.exe