使用c#的相对路径

时间:2011-05-12 11:45:58

标签: c# path relative

我正在使用c#。在我的项目中,我有一个xml文件夹,其中我有一个xml文件说“file.xml”.. 我想在我的项目中使用该文件。我想从当前项目本身获取该文件,因为我将路径视为:

  xmlDoc.Load(@"..\xml\file.xml");

但它没有拿到文件。 它显示了一些“C:”路径.. 如何从项目本身中检索此文件。

3 个答案:

答案 0 :(得分:6)

您应该在解决方案资源管理器中的文件上设置Copy to Output Directory属性,以使用您的EXE将文件gocpy到该文件夹​​。

然后你可以写

xmlDoc.Load(Path.Combine(typeof(MyClass).Assembly, "file.xml"));

这使用EXE文件的实际位置,无论当前目录如何都可以使用。

编辑:在ASP.Net中,您应该将文件放在App_Data文件夹中(不可公开访问),然后写

xmlDoc.Load(Server.MapPath("~/App_Data/file.xml"));

答案 1 :(得分:2)

您应该将Copy to Output Directory设置为“如果更新则复制”,然后您可以使用:

Path.Combine(Application.StartupPath, "file.xml");

答案 2 :(得分:0)

Path.Combine(typeof(MyClass).Assembly.Location.ToString(), "file.xml")