2011-01-11 8 views
1

私は関連のパス

は私の窓の中に2つのパスを持っているC#アプリケーションでこのような状況を持っている

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

と私が最初のようにこれを第2の関連の関連パスを取得する必要があります。

.. \ .. \ Projectos2 \ CSoft.Core

はでこれを行う方法が存在します私はおそらくセパレータとして「\」を使用して、両方を分割することにより、それを把握う

"../../Projectos2/CSoft.Core" 
+0

相対パスは '.. \ Projectos2 \ CSoft.Core'ではなく' .. \ CSoft.Core'ですか? – BenAlabaster

答えて

5

に私を助けることができる持っています。私はその後、私の共通の絆を得るために同じだった配列項目を数えます。次に、出力先配列内の残りの項目を使用して出力先パスを構築し、ソース内の残りの項目を数えることによって.. \文字列を構築します。

  • 共通パス= C:\ Projectos \
  • 残りの宛先パス= CSoft.Core
  • 残りのソースパスが
\ ..あなたを与える(ファイル名自体は含まない)1つの以上のアイテムを持っています

参加.. \ CSoft.Coreが.. \ CSoft.Core

にあなたの補遺与えると:を私はあなたがURI.MakeRelativePath()メトを使用することができます実現しませんでしたこれのためにd - 他の場所で既に行われている場合は、ホイールの再構築を気にしないでください。

+0

ニース、私は前にその1つに遭遇したことはありません... – BenAlabaster

0

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

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

の検索結果を:C#またはいくつかのいずれかは、関数がMakeRelativeUriを試してみてください

関連する問題