Pořád utíkat do tohoto problému a Google nikdy zdá se pochopit, co chci dělat, Tak jsem si myslel, že by to napsat.
Dělala jsem hodně přijímače události ladění v minulý týden nebo dva. ER je definována proti knihovnu dokumentů. Jednotlivé položky v knihovně dokumentů úzce souvisí s jejich nadřazených složek. Tak, Jsem pořád složku položky pro různé manipulace. Při ladění, Potřeboval jsem aktualizovat metadata složku pro konkrétní položku ID vím.
Zde je trochu konzolové aplikace (určeno pro provoz na serveru ve farmě) to vyžaduje dva argumenty: ID položky a hodnotu přiřadit k poli, "Stav schválení". Těžké kódy spoustu věcí a neobsahuje kontrolu chyb.
Kód vyhledá naprogramováno Web, Získá naprogramováno dokumentů knihovny a pak najde uvedené položky. Pak najde nadřazenou složku dané položky a přiřadí hodnotu stavu.
Klíčovým ponaučením pro mě je, že SPItem nedostane přístup ke složce. Musíte použít SPListItem.File.
Je-li někdo stará nabízet kritika nebo navrhnout lepší způsob, jak dostat složky položky, Prosím, zanechte komentář.
<kód>
použití Systém; použití System.Collections.Generic; použití System.Text; použití Microsoft.SharePoint; použití System.Collections; obor názvů Conchango { /// <Shrnutí> /// </Shrnutí> Třída ManualFolderUpdate { statický void Hlavní(řetězec[] argumenty) { řetězec MSH = "ManualFolderUpdate (v1.0): "; // MSH = "záhlaví zprávy" Konzola.WriteLine(MSH + "Rozběhu. Naposledy byl upraven na 08/04/08."); řetězec URL = http://localhost/xyzzy; použití (SPSite oSPSite = nové SPSite(Adresa URL)) { použití (SPWeb oSPWeb = oSPSite.OpenWeb()) { SPList.Update() knihovny dokumentů = oSPWeb.Lists["Dokumenty"]; Konzola.WriteLine(MSH + "Dostal do knihovny dokumentů."); Konzola.WriteLine(MSH + "Doc lib počet položek: [" + docLib.ItemCount + "]."); int FolderID = 0; řetězec NewStatus = "xyzzy"; FolderID = systém.Převést.ToInt32(argumenty[0].ToString()); Konzola.WriteLine("Hledání složku pro položku: [" + FolderID + "]."); SPListItem li = docLib.GetItemById(FolderID); Složka SPFolder thisItemFolder = li.File.ParentFolder; Konzola.WriteLine(MSH + "Dostal nadřazenou složku."); NewStatus = args[1].ToString(); Konzola.WriteLine("Nastavení stavu na [" + NewStatus + "]."); Konzola.WriteLine("Press návrat k potvrzení aktualizace nebo CTRL-C přerušit."); Konzola.ReadLine(); thisItemFolder.Item["Stav schválení"] = NewStatus; thisItemFolder.Item.Update(); Konzola.WriteLine(MSH + "Dokončil aktualizaci složky. Ukončení."); } // pomocí objektu SPWeb } // použití SPSite Konzola.WriteLine(MSH + "Skončil."); } // Hlavní } // Třída foldersync } // obor názvů
</kód>
</Konec>