使用c#的相对路径

发布于 2024-11-06 22:27:26 字数 213 浏览 2 评论 0原文

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

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

但它没有获取该文件。 它显示一些“C:”路径.. 我怎样才能从项目本身检索这个文件。

I am using c#. In my project I am having a xml folder in which i have an xml file say "file.xml"..
I want to use the file in my project. I want to take that file from the current project itself,for that I am giving the path as:

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

but it is not taking the file.
It is showing some "C:" path..
how can I retrive this file from project itself.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

半衬遮猫 2024-11-13 22:27:26

您应该在解决方案资源管理器中的文件上设置复制到输出目录属性,以将文件复制到 EXE 所在的文件夹。

然后您可以编写

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

This 使用 EXE 文件的实际位置,并且无论当前目录如何,都将起作用。

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

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

You should set the Copy to Output Directory property on the file in the Solution Explorer to gocpy the file to the folder with your EXE.

You can then write

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

This uses the actual location of the EXE file and will work regardless of the current directory.

EDIT: In ASP.Net, you should put your file in the App_Data folder (which is not publicly accessible), then write

xmlDoc.Load(Server.MapPath("~/App_Data/file.xml"));
桜花祭 2024-11-13 22:27:26

您应该将复制到输出目录设置为“如果较新则复制”,然后您可以使用:

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

You should set the Copy to Output Directory to "copy if newer" and you can then use:

Path.Combine(Application.StartupPath, "file.xml");
酷炫老祖宗 2024-11-13 22:27:26
Path.Combine(typeof(MyClass).Assembly.Location.ToString(), "file.xml")
Path.Combine(typeof(MyClass).Assembly.Location.ToString(), "file.xml")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文