Я держать работает в эту проблему и Google, как представляется, никогда не понять, что я хочу сделать, так я понял я хотел бы написать это.
Я делал много приемника событий отладки в последнюю неделю или два. ER определяется против библиотеки документов. Отдельные элементы в библиотеке документов тесно связаны с их родительской папки. Таким образом, Я всегда получаю папке пункта для различных манипуляций. Во время отладки, Мне необходимо обновить метаданные папки для конкретного элемента, идентификатор которого я знаю.
Вот немного консольное приложение (предназначен для работы на сервере в ферме) который принимает два аргумента: Идентификатор элемента и значение для присвоения полю, «Состояние утверждения». Это жесткий коды много вещей и не проверка ошибок.
Код ищет жестко сайт, Получает библиотеки жестко документов и затем находит указанный элемент. Затем он находит в родительской папке этого элемента и присваивает значение состояния.
Основной урок здесь для меня является, что SPItem не получить доступ к папке. Вам нужно использовать SPListItem.File.
Если кто-то заботится предложить критика или предложить лучший способ получить папку элемента, Пожалуйста, оставьте комментарий.
<код>
использование Система; использование System.Collections.Generic; использование System.Text; использование Microsoft.SharePoint; использование System.Collections; пространство имен Conchango { /// <Резюме> /// </Резюме> класс ManualFolderUpdate { статический void Главная(Строка[] args) { Строка MSH = «ManualFolderUpdate (v1.0): "; // MSH = "сообщения заголовок" Консоль.WriteLine(MSH + «Запуск. Я Последнее изменение 08/04/08."); Строка URL = http://localhost/xyzzy; использование (SPSite oSPSite = Новые функции SPSite(URL-адрес)) { использование (SPWeb oSPWeb = oSPSite.OpenWeb()) { SPList библиотеки документов = oSPWeb.Lists[«Документы"]; Консоль.WriteLine(MSH + «Получили библиотеки документов."); Консоль.WriteLine(MSH + «Количество элементов lib doc: [" + docLib.ItemCount + "]."); int FolderID = 0; Строка NewStatus = «xyzzy"; FolderID = System.Конвертировать.ToInt32(args[0].ToString()); Консоль.WriteLine(«Ищу папку для элемента: [" + FolderID + "]."); SPListItem Li = docLib.GetItemById(FolderID); SPFolder thisItemFolder = li.File.ParentFolder; Консоль.WriteLine(MSH + «Получил в родительской папке."); NewStatus = args[1].ToString(); Консоль.WriteLine(«Установка статуса [" + NewStatus + "]."); Консоль.WriteLine(«Пресс-возвращение совершить обновление или CTRL-C для прерывания."); Консоль.ReadLine(); thisItemFolder.Item[«Состояние утверждения"] = NewStatus; thisItemFolder.Item.Update(); Консоль.WriteLine(MSH + «Закончились обновления папки. Выход."); } // с помощью SPWeb } // с помощью SPSite Консоль.WriteLine(MSH + «Завершена."); } // Главная } // класс foldersync } // пространство имен
</код>
</конец>