c#中的相关路径

时间:2011-01-11 22:17:59

标签: c# path

我在c#application

中遇到过这种情况

我的窗口中有2条路径

C:\ Projectos \ FrameworkCS \ CSoft.Core C:\ Projectos2 \ CSoft.Core

我需要获得与第一个相关的第二个相关路径,如下所示:

.. \ .. \ Projectos2 \ CSoft.Core

存在一种在c#中执行此操作的方法,或者某个功能可以帮助我

2 个答案:

答案 0 :(得分:5)

尝试MakeRelativeUri

Uri first = new Uri(@"C:\Projectos2\CSoft.Core");
Uri second = new Uri(@"C:\Projectos\FrameworkCS\CSoft.Core ");

string relativePath = second.MakeRelativeUri(first).ToString();

结果:

"../../Projectos2/CSoft.Core"

答案 1 :(得分:0)

我可能会通过使用'\'作为分隔符将两者分开来解决这个问题。然后,我会计算相同的数组项,以获得我的共同纽带。然后我将使用目标数组中的其余项构建目标路径,并通过计算源中的其余项来构建.. \ string。

  • Common path = C:\ Projectos \
  • 剩余目标路径= CSoft.Core
  • 剩余的源路径还有1个项目(不包括文件名本身)给你.. \

加入.. \与CSoft.Core给你.. \ CSoft.Core

附录:我没有意识到你可以使用URI.MakeRelativePath()方法 - 如果已经在其他地方完成了,请不要重新发明轮子。