Rápido e fácil: Obter SPFolder de SPItemList

Manter deparando com este problema e o Google nunca parece entender o que eu quero fazer, então eu percebi que eu ia escrever isso para baixo.

Tenho vindo a fazer um monte de receptor de eventos de depuração na última semana ou duas. A ER é definido em relação a uma biblioteca de documentos. Os itens individuais na biblioteca de documento relacionam-se firmemente para suas pastas pai. Assim, Estou sempre recebendo a pasta do item para várias manipulações. Durante a depuração, Eu precisava para atualizar os metadados de uma pasta para um item específico cujo ID eu sei.

Aqui é um pequeno aplicativo de console (projetado para ser executado no servidor do farm) que leva dois argumentos: o ID de um item e um valor para atribuir a um campo, "Status de aprovação". É difícil códigos um monte de coisas e não tem nenhuma verificação de erros.

O código é um site codificado, Obtém uma biblioteca de documento codificado e depois encontra o item indicado. Em seguida, localiza a pasta pai desse item e atribui o valor de status.

A lição fundamental aqui para mim é que SPItem não você terá acesso à pasta. Você precisa usar SPListItem.

Se ninguém se preocupa em oferecer uma crítica ou sugerir uma forma melhor de obter a pasta de um item, por favor, deixe um comentário.

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

espaço para nome Conchango
{
    /// <Resumo>
 /// </Resumo>
 Classe ManualFolderUpdate
    {
        estático privatevoid Principal(Cadeia de caracteres[] args)
        {
            Cadeia de caracteres MSH = "ManualFolderUpdate (v 1.0): "; // msh = "cabeçalho da mensagem"

 Console.WriteLine(MSH + "Arranque.  Foi modificado em 04/08/08.");

            Cadeia de caracteres URL = http://localhost/xyzzy;

            usando (SPSite t: Microsoft.SharePoint.SPSite oSPSite = Novo SPSite t: Microsoft.SharePoint.SPSite(URL))
            {

                usando (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList t: Microsoft.SharePoint.SPList docLib = oSPWeb.Lists["Documentos"];

                    Console.WriteLine(MSH + "Tenho a biblioteca de documentos.");

                    Console.WriteLine(MSH + "Doc lib contagem de itens: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    Cadeia de caracteres NewStatus = "xyzzy";

                    FolderID = sistema.Converter.ToInt32(args[0].ToString());
                    Console.WriteLine("Buscando pasta item: [" + FolderID + "].");

                    SPListItem Li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Console.WriteLine(MSH + "Tenho a pasta pai.");

                    NewStatus = args[1].ToString();
                    Console.WriteLine("Status da configuração de [" + NewStatus + "].");

                    Console.WriteLine("Pressione ENTER para confirmar a atualização ou o CTRL-C para abortar.");

                    Console.ReadLine();

                    thisItemFolder.Item["O Status de aprovação"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Console.WriteLine(MSH + "Terminar de atualizar a pasta.  Sair.");

                } // using SPWeb

            } // using SPSite

 Console.WriteLine(MSH + "Terminou.");

        } // Principal

    } // Classe foldersync
} // espaço para nome
</código>

</fim>

Subscreva ao meu blog.

Deixar uma resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *