0

私はSharepointプログラミングにまったく慣れていないので、Sharepointサイト内に存在し、渡された値と拡張子が一致するすべてのドキュメントのリストを取得する方法について少しガイダンスが必要です.


背景: 合併の一環として、何百万 (7 TB) のドキュメントがファイルの種類に関係なく SharePoint にインポートされました。これは単に、シャットダウン中のシステムから保存されたデータを取得できるようにするためでした。

これらのドキュメントには、.exe や .dll ファイルなどの危険なファイル タイプが含まれていました。これらを保存する必要がありますが、これらのタイプの悪意のあるファイルが直接ダウンロードされないようにするための適切な措置を講じたいと考えています。

私たちの計画は、検索リストに一致する各ファイルを抽出して圧縮し、zip をアップロードして元のファイルを削除することです。これを行うには、ワンショット アプリケーションが必要です。

実際には複数のサイトが関与しているため、理想的には、1 つのクエリを実行してすべてのサイトのすべてのドキュメントにアクセスしたいと考えています (それらはすべて 1 つのルートの下にありますが、それぞれ独自のデータベースを持っています)。サイトの。


私の考えでは、Sharepoint クライアント オブジェクト モデルを使用して各サイトに対してクエリを実行し、特定の種類のすべてのファイルのリストを返します。私は何かが欲しい

SharepointSite site = new SharepointSite(siteElement, settings.RootURL);
ClientContext clientContext = site.Context;
ListCollection listCollection = clientContext.Web.Lists;
clientContext.Load(listCollection, l=>l.Name.EndsWith(".exe"));
clientContext.Load(listCollection);
clientContext.ExecuteQuery();

しかし、それだけではありません。

この問題にどのようにアプローチすればよいですか?

4

2 に答える 2

0

最後に、データベースに対して直接クエリを作成して、何百万ものアイテムを繰り返すことなく、一致するすべてのドキュメントの特定のリストを取得し、クライアント コンポーネントを使用して必要なファイルを正確に取得することができました。

于 2011-09-16T14:59:05.170 に答える
0

クライアント オブジェクト モデルの基本的なコーディングから始めます。サイト、そのリスト、そしてそのコンテンツを反復処理するだけです。

http://msdn.microsoft.com/en-us/library/ee857094.aspx

于 2011-09-08T14:38:44.213 に答える