Rask og enkel: Få SPFolder av SPItemList

Jeg fortsette å kjøre inn i denne problem og Google synes aldri å forstå hva jeg vil gjøre, så jeg skjønte ville jeg skrive dette.

Jeg har gjort mye av hendelsen mottaker feilsøking i den siste uken eller to. ER er definert mot et dokumentbibliotek. Enkeltelementene i dokumentbiblioteket er tett knyttet til de overordnede mappene. Så, Jeg får alltid mappen for varen for ulike manipulasjoner. Mens feilsøking, Jeg trengte å oppdatere metadataene for en mappe for en bestemt vare der jeg vet-IDEN.

Her er en liten Konsollprogram (utformet for å kjøre på en server i farmen) som tar to argumenter: IDEN for et element og en verdi skal tilordnes et felt, "Godkjenningsstatus". Det vanskelig koder en masse ting og har ingen feilkontroll.

Koden slår opp et hardkodet område, får en hard kodet dokumentbiblioteket og finner deretter angitt. Deretter finner den overordnede mappen til elementet og tilordner statusverdien.

Den viktigste lærdommen for meg er at SPItem ikke får tilgang til mappen. Du må bruke SPListItem.File.

Hvis noen bryr seg å tilby en kritikk eller foreslå en bedre måte å få mappen for et element, Legg igjen en kommentar.

<koden>
ved hjelp av Systemet;
ved hjelp av System.Collections.Generic;
ved hjelp av System.Text;
ved hjelp av Microsoft.SharePoint;
ved hjelp av System.Collections;

navneområdet Conchango
{
    /// <Sammendrag>
 /// </Sammendrag>
 klassen ManualFolderUpdate
    {
        statisk ugyldige Main(streng[] argumenter)
        {
            streng msh = "ManualFolderUpdate (v1.0): "; // msh = "meldingshodet"

 Konsollen.WriteLine til(msh + "Starter.  Jeg ble sist endret på 08/04/08.");

            streng URL = http://localhost/xyzzy;

            ved hjelp av (SPSite oSPSite = nye SPSite(URL-adresse))
            {

                ved hjelp av (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Dokumenter"];

                    Konsollen.WriteLine til(msh + "Fikk dokumentbiblioteket.");

                    Konsollen.WriteLine til(msh + "Doc lib antall elementer: [" + docLib.ItemCount + "].");

                    Int Mappe-ID for = 0;
                    streng NewStatus = "xyzzy";

                    Mappe-ID for = System.Konvertere.ToInt32(argumenter[0].ToString());
                    Konsollen.WriteLine til("Søker mappen for varen: [" + Mappe-ID for + "].");

                    SPListItem Li = docLib.GetItemById(Mappe-ID for);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Konsollen.WriteLine til(msh + "Har den overordnede mappen.");

                    NewStatus = args[1].ToString();
                    Konsollen.WriteLine til("Sette status til [" + NewStatus + "].");

                    Konsollen.WriteLine til("Trykk gå tilbake til å begå oppdateringen eller CTRL   C for å avbryte.");

                    Konsollen.ReadLine();

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

                    Konsollen.WriteLine til(msh + "Fullført oppdateringen av mappen.  Avslutter.");

                } // ved hjelp av SPWeb

            } // ved hjelp av SPSite

 Konsollen.WriteLine til(msh + "Ferdig.");

        } // Main

    } // klassen foldersync
} // navneområdet
</koden>

</slutten>

Abonner på bloggen min.

Technorati Merkelapper:

legg igjen et svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *