Быстро и легко: Получить SPFolder SPItemList

Я держать работает в эту проблему и 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
} // пространство имен
</код>

</конец>

Подписаться на мой блог.

Оставь ответ

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *