Rýchle a jednoduché: Získajte SPFolder SPItemList

Stále beží na tento problém a Google nikdy zdá sa, pochopiť, čo chcem robiť, tak som myslel by som napísať to.

Bol som robiť veľa udalostí prijímač ladenie v poslednom týždni alebo dvoch. ER je definovaný proti knižnice dokumentov. Jednotlivé položky v knižnici dokumentov úzko súvisia s ich nadradených priečinkov. Takže, Som stále v priečinku položky na rôzne manipulácie. V priebehu ladenia, Potreboval som k aktualizácii metaúdaje priečinok pre konkrétnu položku ktorého ID viem.

Tu je trochu console application (určené pre prevádzku na serveri vo farme) to berie dva argumenty: Identifikácia položky a hodnoty priradiť k poľu, "Stav schválenia". Je ťažké kódy veľa vecí a bez chýb.

Kód vyzerá pevne zakódované stránky, dostane tvrdý kódovaný dokladu knižnicu a potom vyhľadá označené položky. Potom zistí nadradeného priečinka tejto položky a priradí hodnotu stavu.

Kľúčové Poučenie pre mňa je, že SPItem nemá prístup do priečinka. Budete musieť použiť SPListItem.File.

Ak niekto stará ponúkať kritika alebo navrhnúť lepší spôsob, ako dostať do priečinka položky, Prosím, zanechajte komentár.

<kód>
pomocou Systém;
pomocou System.Collections.Generic;
pomocou System.Text;
pomocou Microsoft.SharePoint;
pomocou System.Collections;

priestor názvov Conchango
{
    /// <Zhrnutie>
 /// </Zhrnutie>
 trieda ManualFolderUpdate
    {
        statické neplatné Hlavné(reťazec[] argumenty)
        {
            reťazec MSH = "ManualFolderUpdate (v1.0): "; // MSH = "Hlavička správy"

 Konzoly.WriteLine(MSH + "Zakladanie.  Poslednej úpravy na 08/04/08.");

            reťazec URL = http://localhost/xyzzy;

            pomocou (SPSite oSPSite = nové SPSite(adresa URL))
            {

                pomocou (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Dokumenty"];

                    Konzoly.WriteLine(MSH + "Máš v knižnici dokumentov.");

                    Konzoly.WriteLine(MSH + "Doc lib počet položiek: [" + docLib.ItemCount + "].");

                    int Identifikácia priečinka programu = 0;
                    reťazec NewStatus = "xyzzy minového";

                    Identifikácia priečinka programu = systém.Previesť.ToInt32(argumenty[0].ToString());
                    Konzoly.WriteLine("Hľadanie priečinka pre položky: [" + Identifikácia priečinka programu + "].");

                    SPListItem li = docLib.GetItemById(Identifikácia priečinka programu);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Konzoly.WriteLine(MSH + "Dostal nadradeného priečinka.");

                    NewStatus = argumenty[1].ToString();
                    Konzoly.WriteLine("Nastavenie stavu [" + NewStatus + "].");

                    Konzoly.WriteLine("Stlačte Enter potvrdiť aktualizáciu alebo CTRL-C prerušiť.");

                    Konzoly.ReadLine();

                    thisItemFolder.Item["Stav schválenia"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Konzoly.WriteLine(MSH + "Hotové aktualizácia priečinok.  Ukončenie.");

                } // pomocou SPWeb

            } // pomocou SPSite

 Konzoly.WriteLine(MSH + "Skončil.");

        } // Hlavné

    } // trieda foldersync
} // priestor názvov
</kód>

</koniec>

Vyberajte môj blog.

Technorati Tags:

nechať odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *