Cyflym a hawdd: Cael SPFolder o SPItemList

Rwy'n cadw yn rhedeg i mewn i broblem hon ac y Google byth yn ymddangos i ddeall yr hyn yr wyf am ei wneud, felly yr wyf yn cyfrifedig y byddai i mi ysgrifennu hwn i lawr.

Rydw i wedi bod yn gwneud llawer o ddigwyddiad debugging derbynnydd yn ystod yr wythnos neu ddwy ddiwethaf. Diffinnir Swyddfa cofrestru etholiadol erbyn llyfrgell ddogfen. Mae eitemau unigol yn Llyfrgell y ddogfen dynn yn gysylltiedig â ffolderi eu rhiant. Felly, Yr wyf bob amser yn cael y ffolder yr eitem ar gyfer manipulations amrywiol. Tra bod difa chwilod, Yr angen i ddiweddaru y metadata ffolder ar gyfer eitem benodol eu ID yn gwybod.

Dyma ychydig o Consol cais (Cynlluniwyd i redeg ar y gweinydd yn y fferm) Mae hynny'n mynd â dau arg: ID eitem a gwerth i neilltuo i gae, "Statws cymeradwyo". Mae'n anodd codau llawer o bethau ac wedi gwirio nad oes gwall.

Mae'r Cod yn edrych fyny safle galed codio, cael Llyfrgell ddogfen galed codio ac wedyn yn canfod yr eitem nodwyd. Mae wedyn yn canfod y ffolder rhiant eitem honno ac yn neilltuo gwerth statws.

Y wers allweddol i mi yw nad yw SPItem yn cael mynediad chi i'r ffolder. Mae angen i chi ddefnyddio SPListItem.File.

Os mae rhywun yn gofalu i gynnig beirniadaeth neu awgrymu ffordd well o gael y ffolder o eitem, gadewch sylw.

<Cod>
gan ddefnyddio System;
gan ddefnyddio System.Collections.Generic;
gan ddefnyddio System.Text;
gan ddefnyddio Microsoft.SharePoint;
gan ddefnyddio System.Collections;

namespace Conchango
{
    /// <crynodeb>
 /// </crynodeb>
 dosbarth ManualFolderUpdate
    {
        sefydlog gwag Prif(llinyn[] args)
        {
            llinyn msh = "ManualFolderUpdate (V1.0): "; // msh = "pennyn neges"

 Cysuro.WriteLine(msh + "Dechrau.  Roedd diwethaf wedi'u haddasu ar 08/04/08.");

            llinyn URL = http://localhost/xyzzy;

            gan ddefnyddio (SPSite oSPSite = newydd SPSite(url))
            {

                gan ddefnyddio (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Dogfennau"];

                    Cysuro.WriteLine(msh + "Cyrraedd y Llyfrgell y ddogfen.");

                    Cysuro.WriteLine(msh + "Dogfen Democratiaid Rhyddfrydol eitem cyfrif: [" + docLib.ItemCount + "].");

                    int ID ffolder = 0;
                    llinyn NewStatus = "xyzzy";

                    ID ffolder = System.Trosi.ToInt32(args[0].ToString());
                    Cysuro.WriteLine("Chwilio am ffolder ar gyfer eitem: [" + ID ffolder + "].");

                    SPListItem li = docLib.GetItemById(ID ffolder);

                    SPFolder thisItemFolder = li. File.ParentFolder;

                    Cysuro.WriteLine(msh + "Cyrraedd y brif ffolder.");

                    NewStatus = args[1].ToString();
                    Cysuro.WriteLine("Lleoliad statws i [" + NewStatus + "].");

                    Cysuro.WriteLine("Pwyswch yn dychwelyd i ymrwymo diweddariad neu CTRL-C i erthylu.");

                    Cysuro.ReadLine();

                    thisItemFolder.Item["Statws cymeradwyo"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Cysuro.WriteLine(msh + "Wedi gorffen diweddaru y ffolder.  Ac ymadael.");

                } // defnyddio SPWeb

            } // defnyddio SPSite

 Cysuro.WriteLine(msh + "Wedi gorffen.");

        } // Prif

    } // dosbarth foldersync
} // namespace
</Cod>

</diwedd>

Tanysgrifio i fy mlog.

Tagiau Technorati:

Ad a Ateb

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. Meysydd gofynnol yn cael eu marcio *