Ràpid i fàcil: Obtenir SPFolder de SPItemList

Jo segueixo corrent en aquest problema i el Google no sembla entendre el que vull fer, Així que vaig pensar que anava a escriure això.

He estat fent un munt de depuració en l'última setmana o dues auricular d'esdeveniment. Es defineix la ER contra una biblioteca de documents. Els elements individuals de la biblioteca de documents estan estretament relacionats amb les seves carpetes de pare. Així, Sóc sempre geting la carpeta del tema per diverses manipulacions. Durant la depuració, Necessitava actualitzar les metadades d'una carpeta per a un element específic amb identificador sé.

Heus aquí una petita aplicació de consola (dissenyat córrer en servidor del conjunt) que rep dos arguments: l'ID d'un element i un valor d'assignar a un camp, "Estat d'aprovació". Difícil codifica un munt de coses i ha cap comprovació d'errors.

El codi sembla un lloc dur codificat, aconsegueix una biblioteca de documents dur codificat i llavors es troba l'element indicat. A continuació es troba la carpeta de pare d'aquest element i assigna el valor de l'estat.

La lliçó clau aquí per a mi és que SPItem no hi ha accés a la carpeta. Necessitareu usar SPListItem.File.

Si algú es preocupa oferir una crítica o suggerir una millor manera d'aconseguir la carpeta d'un element, Si us plau deixar un comentari.

<codi>
utilitzant Sistema;
utilitzant System.Collections.Generic;
utilitzant System.text;
utilitzant Microsoft.SharePoint;
utilitzant System.Collections;

espai de noms Conchango
{
    /// <resum>
 /// </resum>
 classe ManualFolderUpdate
    {
        estàtica buit Principal(corda[] args)
        {
            corda MSH = "ManualFolderUpdate (v 1.0): "; // MSH = "capçalera de missatge"

 Consola.WriteLine(MSH + "Posada en marxa.  Jo darrera modificació 08/04/08.");

            corda URL = http://localhost/xyzzy;

            utilitzant (SPSite oSPSite = nou SPSite(URL))
            {

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

                    Consola.WriteLine(MSH + "Tinc la biblioteca de documents.");

                    Consola.WriteLine(MSH + "Doc lib element Comte: [" + docLib.ItemCount + "].");

                    Int FolderID = 0;
                    corda NewStatus = "xyzzy";

                    FolderID = sistema.Convertir.ToInt32(args[0].ToString());
                    Consola.WriteLine("Buscar carpeta d'element: [" + FolderID + "].");

                    SPListItem li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Consola.WriteLine(MSH + "Tinc la carpeta principal.");

                    NewStatus = args[1].ToString();
                    Consola.WriteLine("Configuració de l'estat [" + NewStatus + "].");

                    Consola.WriteLine("Premeu retorn per cometre l'actualització o CTRL-C per avortar.");

                    Consola.ReadLine();

                    thisItemFolder.Item["Estat d'aprovació"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Consola.WriteLine(MSH + "Acabava d'actualitzar la carpeta.  Sortint.");

                } // utilitzant SPWeb

            } // utilitzant SPSite

 Consola.WriteLine(MSH + "Acabat.");

        } // Principal

    } // classe foldersync
} // espai de noms
</codi>

</final>

Subscriure's al meu blog.

Etiquetas de Technorati:

Deixi una contestació

no es publicarà la seva adreça de correu electrònic. Els camps necessaris estan marcats *