2012-03-01 10 views
1

サイトコレクション全体ですべてのファイルをコンテンツタイプ別に取得できますか?これは私が現在持っているコードです:サイトコレクション内のすべてのファイルをコンテンツタイプ別に取得する

//Get list of subsites to traverse 
      List<string> subsites = getSubSiteList(); 
      foreach (string siteUrl in subsites) 
      { 
       using (SPWeb web = new SPSite(siteUrl).OpenWeb()) 
       { 
        if (web.GetFolder("Pages").Exists) 
        { 
         //Get Pages Folder from subsite      
         SPFolder folderCol = web.Folders["Pages"]; 

         //Set files in Pages folder 
         SPFileCollection fileCol = folderCol.Files; 
         foreach (SPFile file in fileCol) 
         { 
          //Debug.WriteLine("File in site: " + siteUrl + " file: " + file.Name); 
         } 
        } 
        web.Dispose(); 
       } 
      } 

私はすべてのサブサイトを反復処理し、特定のページを取得するには、「ページ」フォルダに行きます。このコードでは、私はちょうどすべてのプルできるようにしたいと思いますこれらのファイルは、各サブサイトを通過することなく、 "ページ"フォルダに入ってそこから解析するのではなく、コンテンツタイプで取得する必要がありません。コードはどのように見えますか?ありがとう!

答えて

3

その他のオプションは、プログラムによって検索機能を活用することですが、オプションと同じくらい良いとは思いません。サイトデータクエリは文字どおり正確に設計されています。

0

このようなサイトを使用すると、すべてのサイトとサブサイトを取得することができます このMSDNサイトでは、使用できるさまざまなオプションの一覧を見ることができます。あなたがsite data queryで探しているものを How to: Enumerate Sites and Site Collections

SPSite oSiteCollection = SPContext.Current.Site; 
SPWebCollection collWebsite = oSiteCollection.AllWebs; 

for (int i = 0; i < collWebsite.Count; i++) 
{ 
    using (SPWeb oWebsite = collWebsite[i]) 
    { 
     SPListCollection collList = oWebsite.Lists; 

     for (int j = 0; j < collList.Count; j++) 
     { 
      Label1.Text += SPEncode.HtmlEncode(collWebsite[i].Title) + " " 
       + SPEncode.HtmlEncode(collList[j].Title) + "<BR>"; 
     } 
    } 
関連する問題