Hızlı ve kolay: SPItemList, SPFolder olsun

Bu sorunu yayınlanmaya devam ve Google hiçbir zaman ne istediğimi anlamak için görünüyor., Bu yüzden bu yazmak istiyorsunuz düşündüm..

Ben geçen hafta içinde iki hata ayıklama olay alıcı çok yaptığını. Acil serviste bir belge kütüphanesini kullanacak şekilde tanımlanır. Belge kitaplığı içindeki öğeleri sıkıca onların üst klasörlere ilgili. Yani, Ben her zaman için çeşitli manipülasyonlar öğeyi klasör alıyorum. Hata ayıklama sırasında, Klasör kimliği biliyorum belirli bir madde için meta veriler güncelleştirmek gerekli.

İşte küçük bir konsol uygulaması (gruptaki sunucuda çalıştırmak için tasarlanmış) Bu iki baðýmsýz deðiþken alýr: bir alana atamak için bir öğe ve bir değer kimliği, "Onay durumu". Bu zor bir sürü şey kodları ve hiçbir hata denetimi.

Sabit kodlu bir site kodu görünüyor, sabit kodlu belge kitaplığı alır ve belirtilen madde bulur. Daha sonra bu öğenin üst klasör bulur ve bu durum değeri atar.

Benim için önemli ders SPItem klasöre erişim almaz olduğunu. SPListItem.File kullanmanız gerekir.

Eğer herkes bir eleştiri teklif veya bir öğeyi klasör almak için daha iyi bir yol önermek umurunda, yorum lütfen.

<kodu>
kullanma Sistem;
kullanma System.Collections.GenericImports;
kullanma System.Text;
kullanma Microsoft.SharePoint;
kullanma System.Collections;

ad alanı Conchango
{
    /// <Özet>
 /// </Özet>
 sınıf ManualFolderUpdate
    {
        statik geçersiz Main(dize[] args)
        {
            dize MSH = "ManualFolderUpdate (v1.0): "; // MSH "ileti üstbilgisi ="

 Konsol.WriteLine(MSH + "Başlangıç.  Son 08/04/08 güncellenmiştir.");

            dize URL = http://localhost/xyzzy;

            kullanma (SPSite oSPSite = Yeni SPSite(URL))
            {

                kullanma (SPWeb oSPWeb oSPSite.OpenWeb =())
                {
                    SPList.Update() Belge kitaplığı oSPWeb.Lists =["Belgeler"];

                    Konsol.WriteLine(MSH + "Belge kitaplığı yok.");

                    Konsol.WriteLine(MSH + "Doktor lib öğe sayısı: [" + docLib.ItemCount + "].");

                    int Klasörü kimliği = 0;
                    dize NewStatus = "xyzzy";

                    FolderId sistemi =.Dönüştürme.ToInt32(args[0].ToString());
                    Konsol.WriteLine("Madde için klasör arayışı: [" + Klasörü kimliği + "].");

                    SPListItem li docLib.GetItemById =(Klasörü kimliği);

                    SPFolder thisItemFolder li =.File.ParentFolder;

                    Konsol.WriteLine(MSH + "Üst klasörü yok.");

                    NewStatus args =[1].ToString();
                    Konsol.WriteLine("Durumu ayarlama [" + NewStatus + "].");

                    Konsol.WriteLine("Güncelleştirme veya CTRL-C durdurmak için taahhüt dönüş basın.");

                    Konsol.GNU ReadLine();

                    thisItemFolder.Item["Onay durumu"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Konsol.WriteLine(MSH + "Klasörü güncelleştirmeyi bitirdi..  Çıkılıyor.");

                } // SPWeb kullanma

            } // SPSite kullanma

 Konsol.WriteLine(MSH + "Bitmiş.");

        } // Main

    } // sınıf foldersync
} // ad alanı
</kodu>

</sonunda>

Benim blog abone.

Technorati Tags:

Cevap bırak

E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlendi *