C#中的相对路径

3

我希望你能帮忙翻译路径问题!

基本上,我的项目有以下文件夹结构:

Project (root directory which contains the .sln file etc.)
Project/MyProj (contains the code)
Project/MyProjTest (the test folder)
Project/TestResults

现在,我需要创建一个共同的文件夹,在其中可以放置大量应用程序使用的文件,而无需将这些文件复制到多个位置等。最好的方法是什么?理想情况下,我想将该文件夹命名为Project/ResourcesFolder,以便Code文件夹和Test文件夹都可以访问它。那么,如何从C#中调用此文件夹呢?我尝试过Application.StartupPath、Environment.GetCurrentDirectory,但它们只返回当前文件夹,这不是我想要的。谢谢。

将Oded和phimuemue的答案结合起来,你就得到了它。 - Xavier Ho
4个回答

1

你可以在解决方案中添加一个解决方案文件夹,并将常用文件放入其中。


1

你需要复制这些文件,因为你希望程序在部署后能够以相同的方式运行。最简单的方法是将它们添加到你的项目中。在属性窗口中,设置“生成操作(Build Action)”为“无(None)”,“复制到输出目录(Copy to Output Directory)”为“如果较新则复制(Copy if Newer)”。后者的设置确保你不会浪费时间一遍又一遍地复制这些文件。

这样可以确保这些文件与你的EXE文件位于同一个目录下,无论是在调试还是部署后。只需使用Application.StartupPath来定位它们。现在,为应用程序创建安装程序也非常简单。

请注意,如果这些文件很小,你真的想将它们嵌入为资源。


0

.. 表示返回上一级目录。也就是说,从 Project/MyProjTest 目录下,你可以通过 ../MyProj 访问到 Project/MyProj 目录。


但是如果我需要从 Project/MyProjTest 和 Project/MyProjTest/SomeOtherFolder 访问公共文件夹怎么办? - Suraj

0
使用 Server.MapPath("~") 可以获取应用程序的根文件夹。从那里,您可以访问任何您需要的地方。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接