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>