ドキュメントライブラリに登録したファイルのURL(パス)がどうなるのか確認してみる
メールで送るために、ドキュメントライブラリに登録したファイルのURLを貼付けるのはよくあるシーンです。基本的に、右クリックして「ショートカットのコピー」でOKなのですが、これで取得されるURLは SharePoint 2007 と SharePoint 2010 では微妙に仕様が異なります。この辺りを確認してみました。
ライブラリのファイルをポイントすると、ブラウザのステータスバーには通常のUNCパスが表示されるのですが。
実際に取得してみると、このようにやたらと長いURLになります(エクセルファイルの場合)
http://vsrv01/_layouts/xlviewer.aspx?id=/docs/%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80/%E3%83%86%E3%82%B9%E3%83%88.xlsx&Source=http%3A%2F%2Fvsrv01%2Fdocs%2FForms%2FAllItems%2Easpx%3FRootFolder%3D%252Fdocs%252F%25E3%2583%2595%25E3%2582%25A9%25E3%2583%25AB%25E3%2583%2580%26FolderCTID%3D0x0120001262BE90468E6F4FA9AB635C1145D2FA%26View%3D%7B4A587807%2DFDE6%2D40CB%2DBBE0%2D1A394B0F77A9%7D%26InitialTabId%3DRibbon%252EDocument%26VisibilityContext%3DWSSTabPersistence&DefaultItemOpen=1
もっとも、実際には「&Source=」配下のパラメータは不要なので、カットすると最短のURLは以下になります。
http://vsrv01/_layouts/xlviewer.aspx?id=/docs/%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80/%E3%83%86%E3%82%B9%E3%83%88.xlsx
実用面(リンク)としてはこれでも問題ないのですが、ライブラリにおいてはフォルダとの相対関係も結構、重要な情報だったりしますので、普通のUNCパスの方が便利な場合もあるんですよね。
加えて、ややこしいことに、実はこれはあくまで Office ファイルの場合です。それ以外、例えばテキストのURLを取得すると表示通りのUNCパスになります。
http://vsrv01/docs/フォルダ/サンプル.txt
どうやら、SharePoint 2010 のライブラリでは、OWA(Office Web Apps)が優先されている場合 Officeファイルをブラウザで開く為に、このようなリンクのすり替えが行われるようです。
ライブラリの詳細設定で「ブラウザー対応ドキュメントを表示する既定の方法」を【クライアント アプリケーションで開く】に設定してやると、Officeファイルについても、通常のUNCパスがとれるようになります。
http://vsrv01/docs/フォルダ/テスト.xlsx
なお、フォルダについては、SharePoint 2007 から変わっていません。普通に取得すると、次のようなこれまた長いURLになります。
http://vsrv01/docs/Forms/AllItems.aspx?RootFolder=%2Fdocs%2F%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80&FolderCTID=0x0120001262BE90468E6F4FA9AB635C1145D2FA&View={4A587807-FDE6-40CB-BBE0-1A394B0F77A9}
しかし、フォルダのプロパティを表示して、名前列のリンクを「ショートカットのコピー」すれば、通常のUNCパスが取得できます。
なお、OWA を優先したままでファイルのUNCパスを取りたい場合はどうするのか?という点については、実はあまり上手い方法がなさそうです。手作業でパスを組み立てたり、ソースを見るといったとてもエンドユーザにはお勧めできない方法以外では、「リンクを電子メールに送信」機能で、Outlookに連携するしかなさげ。
OWAは確かにすごい機能ですし、便利だと思うのですが、こういった部分もきちんと作りこんで欲しいなぁ。
login