C#如何导出位于父文件夹中的文件的相对文件路径?

C#如何导出位于父文件夹中的文件的相对文件路径?,c#,.net,C#,.net,我正在使用Visual Studio 2005(.NET版本>2.0+)创建windows应用程序 根据我的观察,文件的相对路径可以在调试文件夹中创建的EXE文件的引用中给出。 示例:如果我将路径指定为“images\image.png”,则会加载文件夹“images”(inturn位于调试文件夹中)中的文件 我的问题是,如果文件存在于父文件夹中怎么办? 假设。。“DEBUG”位于一个“BIN”文件夹中,其中还有一个文件夹“IMAGES”,我必须在代码中指向它。(BIN/IMAGES/image

我正在使用Visual Studio 2005(.NET版本>2.0+)创建windows应用程序

根据我的观察,文件的相对路径可以在调试文件夹中创建的EXE文件的引用中给出。 示例:如果我将路径指定为“images\image.png”,则会加载文件夹“images”(inturn位于调试文件夹中)中的文件

我的问题是,如果文件存在于父文件夹中怎么办? 假设。。“DEBUG”位于一个“BIN”文件夹中,其中还有一个文件夹“IMAGES”,我必须在代码中指向它。
(BIN/IMAGES/image.png)

通过在调试文件夹内复制“IMAGES”文件夹或提供绝对路径,可以避免这种需要,但是。。我想知道是否有任何方法可以指向相对路径中的父文件夹

不起作用?与中一样,
。/../image.png

编辑以添加一些细节:如所述,“如果路径包含“双点”,则称其为相对路径;也就是说,路径的一个组件中有两个句点。此特殊说明符用于表示当前目录上方的目录,也称为“父目录”


其中两个“双点”将为您提供父文件夹,如我的示例所示。

是当前文件夹的父文件夹的别名。根据您的示例,从“Debug”文件夹到“images”文件夹的路径应该是
。\images

我强烈建议您阅读CLR(运行时)如何定位依赖项?除了在.net中进行探测外,您还可以使用如下代码来验证所说的内容:

DirectoryInfo dir = new DirectoryInfo("../..");
String name = dir.FullName;

使用。。允许您向上移动目录树,然后从目录树向下导航到相应的子目录。

在应用程序的生成后事件中,您可能希望打包代码,以便创建文件夹,例如

  • bin
    |->调试 |->释放
  • 图像
  • 等等

  • 一旦设置好,您就可以使用调试或发布中的相对路径,如.././images/file等

    从来没有遇到过,我相对来说是新手,谢谢你的建议:)我会试试这个。顺便说一句,我在XPath(XSLT)中使用过它:)但没有想到会有相似之处:)@Phil,是的,我想,我做了。。当然,正因为如此,我产生了这个疑问,我所做的就是“在引用debug/*.exe时使用了相对路径,但在发布模式下运行时,最终导致错误的文件路径错误!谢谢:)我一定会利用你宝贵的回复:)+1感谢宝贵的回复:)我一定会去做:)+1感谢宝贵的回复。我所需要知道的就是如何使用
    :)+1来获得有用的答案。。