FRISSÍTÉS: Ez szerkezet, de vannak jelentős korlátozásokat, amelyeket a megjegyzések. Ez május csendes lenni hasznos-ban némely körülmények.
FRISSÍTÉS 2: A jelenlegi projekt, a felhasználók mindig feltölt okiratok. Ennek eredményeként, Én nem befut egy probléma, ahol MS Word fut, és úgy gondolja, hogy a fájlt átnevezték rajta. Én tett befut egy probléma, "a fájl módosításának valaki más" és megfejt ez keresztül egy egyszerű szemafor típusát jelző. Használók szükség-hoz meta adat mező átalakítása alapértelmezett értéktől valami mást. A itemupdated() vevő úgy néz ki, az érvényes érték ténylegesen végrehajtása az Átnevezés előtt, és azóta, Nem volt gond. Ön kilométerteljesítmény változhat.
Van egy ügyfél követelmény megfelel egy adott névadási adott dokumentumtárba feltöltött fájlok nevének módosítása. Az API biztosít egy "Átnevezés()" a módszer. Ehelyett, az általunk használt "A MoveTo(…)". Itt van egy minimális darab-ból kód-hoz befejez ez:
nyilvános felülbírálása Érvénytelen ItemAdded(SPItemEventProperties Tulajdonságok) { SPFile fájl f = tulajdonságai.ListItem.File; f.MoveTo(tulajdonságok.ListItem.ParentList.RootFolder.Url + "a /xyzzy.doc"); f.Update(); } |
A csak bonyolult darab a "tulajdonságai. ListItem.ParentList.RootFolder.Url". A MoveTo() módszerhez egy URL-t. Gyökér dosszié-ból az én-m aktuális dokumentumtár nekem pont karakterlánc tört. Ez lehetővé teszi, hogy nekem, hogy ne az én eseményérzékelő kemény kódolás.
Ez is a hasznos változat, amit csinál ugyanaz a dolog, de rendeli hozzá a fájl neve "Cím":
nyilvános felülbírálása Érvénytelen ItemAdded(SPItemEventProperties Tulajdonságok) { DisableEventFiring(); // Ez a tétel megnevezése rendel a fájl neve. // MEGJEGYZÉS:: Ezt a feladatot meg kell történnie, mielőtt mi módosít a reszelő, maga. // Hívja frissítés() az SPFile-nak úgy tűnik, hogy érvényteleníti a tulajdonságok // bizonyos értelemben. "A cím frissítések" nem tudta, amíg nem, hogy a változás (és frissítés() Hívja) // átkerültek a változás előtt a nevét. tulajdonságok.Listaelem["A cím"] = tulajdonságai.ListItem.File.Name; tulajdonságok.ListItem.Update(); SPFile fájl f = tulajdonságai.ListItem.File; // Kap a fájl kiterjesztését. Meg kell, hogy később. karakterlánc spfileExt = új FileInfo(f.Name).Kiterjesztés; // Nevezze át a fájlt a listaelem-azonosító, és használ a reszelő kiterjesztés-hoz eltartás // azt a részét, hogy ép. f.MoveTo(tulajdonságok.ListItem.ParentList.RootFolder.Url + "/" + tulajdonságok.Listaelem["ID"] + spfileExt); // Elkövetni a lépés. f.Update(); EnableEventFiring(); } |