絶対URLからSPSiteを取得する方法です。
SPSiteのコンストラクタの引数に、絶対URLを渡すとSPSiteが取得できます。
1 | <span class="lnum"> 1: </span>SPSite site = <span class="kwrd">new</span> SPSite(<span class="str"><a href="http://test.co.jp/test/Lists/List1/DispForm.aspx?ID=1">http://test.co.jp/test/Lists/List1/DispForm.aspx?ID=1</a></span>); |
管理パスを定義している場合は、SharePointが自動的に管理パスかどうかを判断し、適切なSPSiteを返してくれます。
例えば、http://test.co.jp直下のサイトコレクションの下位にtest1という管理パスを定義し、そこにサイトコレクションを作成した場合、以下のコードではtest1のサイトコレクションを取得します。
1 | <span class="lnum"> 1: </span>SPSite site = <span class="kwrd">new</span> SPSite(<span class="str">"http://test.co.jp/test1/Lists/List1/DispForm.aspx?ID=1"</span>); |
サイトコレクションが特定できれば、後半のURLは存在しないコンテンツを指していても問題ありません。
以下のコードでは、test2という存在しないサブサイトを指しています。
このコードの結果は、http://test.co.jpのサイトコレクションが取得できます。
1 | <span class="lnum"> 1: </span>SPSite site = <span class="kwrd">new</span> SPSite(<span class="str">"http://test.co.jp/test2/Lists/List1/DispForm.aspx?ID=1"</span>); |
指定の絶対URLでSPSiteが取得できない場合、FileNotFoundExceptionが発生します。