5

現在、Visual Studio の Layout フォルダーに docx ファイルを追加し、それらの ducment ファイルを使用してコンテンツ タイプを作成するプロジェクトに取り組んでいます。

問題は、ドキュメント ファイルをプログラムで取得できないことです。Web ブラウザーを使用してファイルを取得できますが、web.GetFolder(); を使用することはできません。機能がアクティブ化されると、コードは機能レシーバーで実行されます。

SPSite site = properties.Feature.Parent as SPSite;
SPWeb web = site.RootWeb;

SPFolder docTempFolder = web.GetFolder("_LAYOUTS/Projekt/DocumentTemplates");

このコードにより、ファイルがゼロのコレクションが得られます。

私は何を間違っていますか?

助けてくれてありがとう。

4

1 に答える 1

7

SPFolderSharePointドキュメントライブラリ/リストからオブジェクトを取得するためのものです。ファイルシステム(14ハイブ)のファイルを。としてキャストしようとしてアクセスすることはできませんSPFolderSPWeb.GetFolderまた、ファイルがWebの近くにないため、使用できません。それらはハードディスク上にあります。

を使用して14個のハイブを取得できるため、次のGetGenericSetupPathように機能します。

var path = SPUtility.GetGenericSetupPath(@"TEMPLATE\LAYOUTS\Projekt\DocumentTemplates");

System.IO.Fileこのパスは、通常のストリームリーダーなどでアクセスできるようになりました。


編集:_layouts SharePoint 2013以降の場合、新しいSharePointバージョンでは、フォルダーへの参照には常にパスにSharePointバージョンが含まれているため(/_layouts/15SharePoint 2013 /_layouts/14for SharePoint 2010など)、上記の方法は廃止されました。

新しいメソッドはSPUtility.GetVersionedGenericSetupPathです。このメソッドはSharePoint2010には存在しません。

于 2012-06-19T10:56:21.537 に答える