Хутка і лёгка: Атрымаць SPFolder з SPItemList

Я ўвесь час працуе з гэтай праблемай і Google ніколі, здаецца, разумею, што я хачу зрабіць, таму я вырашыў, я хацеў бы запісаць гэта.

Я рабіў шмат падзей адладкі прымача ў апошнія два тыдні. The ER is defined against a document library. The individual items in the document library are tightly related to their parent folders. Так, I am always getting the folder of the item for various manipulations. While debugging, Мне трэба абнавіць метададзеныя тэчкі для вызначанага элемента, ідэнтыфікатар якога я ведаю.

Вось невялікі кансольнага прыкладання (прызначаны для працы на серверах фермы) , Якая прымае 2 аргументу:: ID элемента і значэнне, якое прысвойваецца полі, "Approval Status". It hard codes a lot of stuff and has no error checking.

Код шукае жорсткі Кадаваць сайт, gets a hard coded document library and then finds the indicated item. It then finds the parent folder of that item and assigns the status value.

The key lesson here for me is that SPItem doesn’t get you access to the folder. You need to use SPListItem.File.

Калі хтосьці захоча прапанаваць крытыку або прапанаваць лепшы спосаб атрымаць тэчку пункт, калі ласка, пакіньце каментар.

<код>
выкарыстанне Сістэма;
выкарыстанне System.Collections.Generic;
выкарыстанне System.Text;
выкарыстанне Microsoft.SharePoint;
выкарыстанне System.Collections;

Прастора назваў Conchango
{
    /// <рэзюмэ>
 /// </рэзюмэ>
 клас ManualFolderUpdate
    {
        статычны ануляваць Асноўны(радок[] аргументы)
        {
            радок MSH = "ManualFolderUpdate (v1.0): "; // MSH = "Паведамленне Загаловак"

 Кансоль.WriteLine(м.д.п. + "Увод у эксплуатацыю.  Я Апошняе змяненне 08/04/08.");

            радок URL = http://localhost/xyzzy;

            выкарыстанне (SPSite oSPSite = новы SPSite(URL-адрас))
            {

                выкарыстанне (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Дакументы"];

                    Кансоль.WriteLine(м.д.п. + "Ёсць у бібліятэцы дакументаў.");

                    Кансоль.WriteLine(м.д.п. + "Doc Бібліятэка колькасць элементаў: [" + docLib.ItemCount + "].");

                    Int FolderID = 0;
                    радок NewStatus = "XYZZY";

                    FolderID = System.Канвертаваць.ToInt32(аргументы[0].ToString());
                    Кансоль.WriteLine("Шукаю тэчку пункт: [" + FolderID + "].");

                    SPListItem Li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Кансоль.WriteLine(м.д.п. + "Атрымаў бацькоўскай тэчкі.");

                    NewStatus = аргументы[1].ToString();
                    Кансоль.WriteLine("Усталяванне статусу [" + NewStatus + "].");

                    Кансоль.WriteLine("Націсніце Увод для здзяйснення абнаўлення або CTRL-C, каб перапыніць.");

                    Кансоль.ReadLine();

                    thisItemFolder.Item["Стан зацвярджэння"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Кансоль.WriteLine(м.д.п. + "Гатовыя абнаўлення тэчку.  Выхад.");

                } // выкарыстанне SPWeb

            } // выкарыстанне SPSite

 Кансоль.WriteLine(м.д.п. + "Гатова.");

        } // Асноўны

    } // Клас FolderSync
} // Прастора назваў
</код>

</канец>

Падпісацца на мой блог.

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя палі пазначаныя * *