Fácil y rápida: Obtener SPFolder de SPItemList

Sigo a la ejecución de este problema y el Google nunca parece entender lo que quiero hacer, así que pensé que esto sería anotar.

Yo he estado haciendo un montón de receptor de eventos de depuración en la última semana o dos. La ER se define contra una biblioteca de documentos. Los elementos individuales de la biblioteca de documentos se relacionan firmemente con sus carpetas principales. Por lo tanto, Siempre estoy recibiendo la carpeta del tema para la manipulación de diversos. Durante la depuración, Necesitaba para actualizar los metadatos de una carpeta para un elemento específico cuyo ID sé.

Aquí es una pequeña aplicación de consola (diseñado para ejecutarse en el servidor de la granja) toma dos argumentos: el ID de un elemento y un valor para asignar a un campo, "Estado de aprobación". Que duro códigos un montón de cosas y ninguna comprobación de errores.

El código busca un sitio duro codificado, es una biblioteca de documentos duro codificado y entonces encuentra el elemento indicado. A continuación, encuentra la carpeta principal de ese tema y asigna el valor de estado.

La lección clave aquí para mí es que SPItem no obtener acceso a la carpeta. Es necesario utilizar SPListItem.File.

Si nadie se preocupa de ofrecer una crítica o sugieren una mejor forma de obtener la carpeta de un elemento, por favor dejar un comentario.

<código>
utilizando Sistema;
utilizando System.Collections.Generic;
utilizando System.Text;
utilizando Microsoft.SharePoint;
utilizando System.Collections;

espacio de nombres Conchango
{
    /// <Resumen>
 /// </Resumen>
 clase ManualFolderUpdate
    {
        estática void Principal(cadena[] args)
        {
            cadena MSH = "ManualFolderUpdate (v1.0): "; // MSH = "encabezado del mensaje"

 Consola.WriteLine(MSH + "Puesta en marcha.  Estaba actualizado el 04/08/08.");

            cadena URL = http://localhost/xyzzy;

            utilizando (SPSite oSPSite = Nuevo SPSite(URL))
            {

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

                    Consola.WriteLine(MSH + "Tiene la biblioteca de documentos.");

                    Consola.WriteLine(MSH + "Número de elementos de la lib doc: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    cadena NewStatus = "xyzzy";

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

                    SPListItem Li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

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

                    NewStatus = args[1].ToString();
                    Consola.WriteLine("Establecer el estado de [" + NewStatus + "].");

                    Consola.WriteLine("Pulse volver a cometer la actualización o CTRL-C para cancelar.");

                    Consola.ReadLine();

                    thisItemFolder.Item["El estado de aprobación"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Consola.WriteLine(MSH + "Finalizado la actualización de la carpeta.  Salir.");

                } // utilizando SPWeb

            } // utilizando SPSite

 Consola.WriteLine(MSH + "Terminó.");

        } // Principal

    } // clase foldersync
} // espacio de nombres
</código>

</final>

Suscribirse a mi blog.

Etiquetas de Technorati:

Contesta

su dirección de correo electrónico no será publicada. Los campos necesarios están marcados *