2010-12-08 3 views
2

解決する必要がある問題が出てきました。私は、私はあなたに同じのためのソリューションを提供してきたが、1つの補正は、あなたのように画像ライブラリのための同じを適用することはできませんルートWebとそのすべてのサブサイトをループにしたい、といくつかのプロパティルートWebとそのすべてのサブサイトからループスルーする方法

+0

を設定したいです画像ライブラリはコンテンツの承認をサポートしていませんので、他のタイプのリストにこのソリューションを適用する必要がある場合は、 –

+0

コードをありがとうございますが、どのように各Webで画像リストのプロパティを設定できますか? –

答えて

2
using (SPSite oSPsite = SpSecurityHelper.GetElevatedSite(GetSiteCollection(properties))) 
     { 
      SPWebCollection siteWebs = oSPsite.AllWebs; 
      foreach (SPWeb web in siteWebs) 
      { 
       try 
       { 
        SPList list = null; 
        try 
        { 
         list = web.Lists["Images"]; 
        } 
        catch { } 

        if (list != null) 
        { 

         list.EnableModeration = isEnabled == false ? false: true; 
         list.Update(); 
        } 
       } 
       finally 
       { 
        if (web != null) 
         web.Dispose(); 
       } 
      } 
     } 
5
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.SharePoint; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      using (SPSite oSPsite = new SPSite("http://sharepointdev:2021")) 
      { 
       using (SPWeb oSPWeb = oSPsite.OpenWeb()) 
       { 
        foreach (SPList list in oSPWeb.Lists) 
        { 
         if (list.ContentTypes.Count > 0) 
         { 

          foreach (SPContentType contentType in list.ContentTypes) 
          { 
           if (contentType.Name == "Document") 
           { 
            list.EnableModeration = true; 
            list.Update(); 
           } 
          } 
         } 
        } 

        if(oSPWeb.Webs.Count > 0) 
        recursivewebcheck(oSPWeb); 
       } 
      } 
     } 



     static void recursivewebcheck(SPWeb oSPWeb) 
     { 

      foreach (SPWeb web in oSPWeb.Webs) 
      { 
       foreach (SPList list in oSPWeb.Lists) 
       { 
        if (list.ContentTypes.Count > 0) 
        { 

         foreach (SPContentType contentType in list.ContentTypes) 
         { 
          if (contentType.Name == "Document") 
          { 
           list.EnableModeration = true; 
           list.Update(); 
          } 
         } 
        } 
       } 

       if (web.Webs.Count > 0) 
       { 
        recursivewebcheck(web); 
       } 
       web.Dispose(); 
      } 

     } 
    } 
} 
+0

このソリューションはドキュメントライブラリ用であり、よくテストされています –

+0

これはルートWebのすべてのリストをループするだけですか? –

+0

サイトコレクションの下に存在するすべてのサイトをループしていません –

関連する問題