Արագ եւ հեշտ: Ստացեք 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, Ես պետք է թարմացնել մետատվյալներ մի թղթապանակում կոնկրետ կետում, որի ID գիտեմ.

Ահա մի փոքր Console դիմումը (նախագծված է առաջադրվել սերվերի ֆերմայում) որ տանում է փաստարկներ: ՀՀ 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
    {
        Ստատիկ անվավեր Հիմնական(լարային[] args)
        {
            լարային msh = "ManualFolderUpdate (v1.0): "; // msh = "Message Header"

 Մխիթարելու.WriteLine(msh + "Starting up.  Ես վերջին անգամ փոփոխվել է 08/04/08 -");

            լարային url = http://localhost/xyzzy;

            օգտագործելով (SPSite oSPSite = նոր SPSite(url))
            {

                օգտագործելով (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 = System.Փոխակերպել.ToInt32(args[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 = args[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
} // անվանակարգ
</համար>

</վերջ>

Անդամագրվել իմ բլոգում.

Արորդիների Tags:

Ավելացնել կարծիք

Ձեր էլ. Փոստի հասցեն չի հրապարակվելու. Պահանջվող դաշտերը նշված են աստղանիշով *