Rapid şi uşor: Obţine SPFolder de SPItemList

Am continua să fie difuzate în această problemă şi Google nu pare să înţeleagă ceea ce vreau să fac, aşa că am gândit aş scrie acest lucru în jos.

Am făcut o mulţime de eveniment receptor depanare în ultima săptămână sau două. ER este definit împotriva o bibliotecă de documente. Elementele individuale din biblioteca de documente sunt strâns legate de lor folderelor părinte. Deci, Mereu primesc dosarul elementului pentru diferitele manipulări. În timp ce depanare, Am nevoie pentru a actualiza metadatele unui dosar pentru un element specific al căror ID ştiu.

Aici este o mică aplicaţie consolă (proiectat pentru a rula pe server din fermă) care are două argumente: ID-ul de un element şi o valoare pentru a aloca un câmp, "Starea de aprobare". Greu coduri o mulţime de lucruri şi are nici o verificare de eroare.

Codul arata un site de greu codificate, devine o bibliotecă de documente greu codificate şi apoi găseşte elementul indicate. Apoi se găseşte folderul părinte al acelui element şi atribuie valoarea stare.

Cheie lecţie aici pentru mine este că SPItem nu obţine acces la folderul. Trebuie să utilizaţi SPListItem.File.

Dacă cineva îi pasă de a oferi o critică sau să sugereze o modalitate mai bună pentru a obţine în folderul de un element, vă rugăm să lăsaţi un comentariu.

<cod>
folosind Sistem;
folosind System.Collections.Generic;
folosind System.Text;
folosind Microsoft.SharePoint;
folosind System.Collections;

spaţiu de nume Conchango
{
    /// <Rezumat>
 /// </Rezumat>
 Clasa ManualFolderUpdate
    {
        statice nule Main(şir[] args)
        {
            şir uzzy = "ManualFolderUpdate (v1.0): "; // uzzy = "mesajul antet"

 Consola.WriteLine(uzzy + "Incepand de sus.  Am fost ultima modificare 04/08/08.");

            şir URL = http://localhost/xyzzy;

            folosind (SPSite oSPSite = noi SPSite(URL-ul))
            {

                folosind (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList.Update() docLib = oSPWeb.Lists["Documente"];

                    Consola.WriteLine(uzzy + "Am biblioteca de documente.");

                    Consola.WriteLine(uzzy + "Doc articolului lib conta: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    şir NewStatus = "xyzzy";

                    FolderID = sistem.Conversia.ToInt32(args[0].ToString());
                    Consola.WriteLine("Căutând pliant pentru articol: [" + FolderID + "].");

                    SPListItem li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Consola.WriteLine(uzzy + "Am folderul părinte.");

                    NewStatus = args[1].ToString();
                    Consola.WriteLine("Stabilirea statutului [" + NewStatus + "].");

                    Consola.WriteLine("Întoarcere a comite update sau CTRL-C pentru a abandona de presă.");

                    Consola.ReadLine();

                    thisItemFolder.Item["Starea de aprobare"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Consola.WriteLine(uzzy + "Terminat actualizarea folderul.  Ieşirea.");

                } // folosind SPWeb

            } // folosind SPSite

 Consola.WriteLine(uzzy + "Terminat.");

        } // Main

    } // clasa foldersync
} // spaţiu de nume
</cod>

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *