Брз и лесен: Добие 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, Требаше да се ажурира на метаподатоци на папката за одредена ставка чиј проект знам.

Тука е малку конзола апликација (дизајниран да работи на сервер во фарма) кој ги зема два аргументи: проект на некој предмет и вредност да му ја додели на поле, "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 = "Message Header"

 Утешуваат.WriteLine(MSH + "Starting up.  Јас последен пат е изменета на 08/04/08.");

            низа url = http://localhost/xyzzy;

            користење на (SPSite oSPSite = нови SPSite(рачно))
            {

                користење на (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Documents"];

                    Утешуваат.WriteLine(MSH + "Got the document library.");

                    Утешуваат.WriteLine(MSH + "Doc lib item count: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    низа NewStatus = "xyzzy";

                    FolderID = Систем.Конвертирате.ToInt32(аргументи[0].ToString());
                    Утешуваат.WriteLine("Seeking folder for item: [" + FolderID + "].");

                    SPListItem li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Утешуваат.WriteLine(MSH + "Got the parent folder.");

                    NewStatus = аргументи[1].ToString();
                    Утешуваат.WriteLine("Setting status to [" + NewStatus + "].");

                    Утешуваат.WriteLine("Press return to commit the update or CTRL-C to abort.");

                    Утешуваат.Readline();

                    thisItemFolder.Item["Approval Status"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Утешуваат.WriteLine(MSH + "Finished updating the folder.  Излегување.");

                } // користење на SPWeb

            } // користење SPSite

 Утешуваат.WriteLine(MSH + "Finished.");

        } // Главната

    } // класа foldersync
} // именски простор
</код>

</крајот>

Да се ​​претплатите на мојот блог.

Technorati Тагови:

Остави Одговори

Вашата е-маил адреса нема да бидат објавени. Задолжителни полиња се означени *