2013-05-09 222 views
0

我在位置相对路径(找不出)

下的图像:\用户\阿里\桌面\文件夹\ BIN \用户\最新\ DATA \帮助\ pic.png“;

我想在位于

C文件中使用这张图片:\用户\阿里\桌面\文件夹\标签\用户\配置\ file.cs“;

如果我在file.cs中使用pic.png的绝对路径,我可以访问图像。但我想在file.cs.中使用图像的相对路径。

如何计算pic.png的file.cs

PS相对路径:我已经看了看链接stackoverflow.com/questions/9065089/calculate-relative-filepath

它并不适合我。如果有些机构可以回答这个问题,那将非常棒。

回答

0

像这样的东西?

"..\..\..\bin\Customer\latest\data\help\pic.png" 
0

首先删除路径的一部分是相同的:

bin\Customer\latest\data\help\pic.png 

如果你做同样的电流路径上,你只剩下三个层次Tab\User\Configuration,所以你需要去下降三个级别,以达到路径符合点:

..\..\..\bin\Customer\latest\data\help\pic.png 
0

这是不可能的。一旦代码被编译(它必须是,为了执行它),它没有你的.cs文件的概念。它们包含的所有代码都被编译到可执行文件中。它并不保持独立,并且可执行文件在编译时不知道.cs文件用于在磁盘上存储的位置。

相对路径相对于您的可执行文件的工作目录工作。默认情况下,已编译的可执行文件被放置在bin文件夹中,并由调试器使用此位置作为工作目录执行,因此这也是您的文件所需的位置。

为了使这自动发生,请将您的pic.png文件添加到您的项目中,然后将其“复制到输出目录”属性设置为“true”。这将导致编译器自动将映像文件复制到与编译的可执行文件相同的目录中。然后你可以使用相对于应用程序的目录路径如下:

string loadPath = Path.Combine(Path.Combine(typeof(MyClass).Assembly, "pic.png"); 

更重要的是,直接嵌入图像到您的项目作为一种资源,那么你并不需要分配一个单独的图像文件或淤泥大约有脆弱的路径。

0

Wy是否想要f​​ile.cs.中的相对路径File.cs只是一个代码文件。一个文本文件,没有更多。该文件无法访问图片。或者你是否有代码在该文件中,该代码是访问图片?

如果你,你不是在谈论从file.cs到你的pic的相对路径。您正在讨论从EXE文件到图像的相对路径。在这种情况下,您必须知道编译器在编译期间将放置图像的位置。

如果图像不是项目的一部分,只是计算机上的某个文件。我建议你在你的app.config中配置一个配置设置,并设置该图片的绝对路径。