Швидкий і простий: Отримати SPFolder SPItemList

Я постійно працює в цієї проблеми на Google здається, ніколи не зрозуміти, що я хочу зробити, тому я вирішив, що я пишу це.

Я роблю багато подій приймач налагодження в останній тиждень або два. ER визначається проти бібліотеки документів. Окремі елементи у бібліотеці документів міцно пов'язані батьківських папок. Так, Я завжди отримую папки елемент для різних Мані. Час усування вад, Мені потрібно оновлювати метадані папка для певного елемента ID я знаю.

Ось трохи консольного застосування (призначений для роботи на сервері ферми) Це вимагає два аргументи: ID елемента і значення, щоб призначити поле, "Стан затвердження". Він жорсткий коди багато речей а не перевірки помилок.

Код виглядає жорстких закодованих ділянку, отримує бібліотеки жорстких закодованих документів і потім знаходить зазначеного елемента. Потім він знаходить батьківську папку, що пункт і призначає значення status.

Ключові урок для мене є, що SPItem не отримати доступ до папки. Ви повинні використовувати SPListItem.File.

Якщо хтось турбує, щоб запропонувати критика або запропонувати кращий спосіб отримати папки елемент, будь ласка, залиште коментар.

<код>
за допомогою Система;
за допомогою System.Collections.Generic;
за допомогою System.Text;
за допомогою Microsoft.SharePoint;
за допомогою System.Collections;

простір імен Conchango
{
    /// <резюме>
 /// </резюме>
 клас ManualFolderUpdate
    {
        статичні недійсними Головна(рядок[] Args)
        {
            рядок MSH = "ManualFolderUpdate (v 1.0): "; // MSH = "заголовку повідомлення"

 Консолі.WriteLine(MSH + "Запуск.  Я було змінено на 04/08/08.");

            рядок URL-адреса = http://localhost/xyzzy;

            за допомогою (SPSite oSPSite = нові SPSite(URL-адреса))
            {

                за допомогою (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Документи"];

                    Консолі.WriteLine(MSH + "Отримав бібліотеки документів.");

                    Консолі.WriteLine(MSH + "Doc lib елемент кол: [" + docLib.ItemCount + "].");

                    Int FolderID = 0;
                    рядок NewStatus = "xyzzy";

                    FolderID = системи.Перетворення.ToInt32(Args[0].ToString());
                    Консолі.WriteLine("У пошуках папки для елемента: [" + FolderID + "].");

                    SPListItem Лі = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = Лі.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
} // простір імен
</код>

</кінець>

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

Дати відповідь

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