PÄIVITYS: Tämä toimii mutta merkittäviä rajoituksia, jotka kuvataan kommentteja. Tämä voi silti olla hyötyä joissakin cirumstances.
PÄIVITYS 2: Minun nykyisen projektin, käyttäjät aina ladata asiakirjoja. Tämän seurauksena, Ei törmätä ongelmaan Jos MS Word on käynnissä ja ajattelee, että tiedosto nimettiin sitä. Törmätä ongelmaan, "Tiedostoa muokattiin joku muu" ja ratkaista tämä yksinkertainen semafori tyyppi lippu. Käyttäjä kaivata jotta heilahdus meta-tietokentän oletusarvon mukainen jotain muuta. Itemupdated() vastaanotin etsii kelvollinen arvo ennen varsinaista nimeä ja sen jälkeen, Ei ole ollut mitään ongelmia. Sinun mittarilukema voivat vaihdella.
Olen asiakas vaatimus muuttaa nimeä tiedostoja ladataan tietyssä asiakirjakirjastossa, erityisesti nimeämiskäytännön mukainen. API ei ole "-nimeä()" menetelmä. Sen sijaan, Käytämme "MoveTo(…)". Tässä on pieni vähän koodia toteuttaa tämän:
yleiset Ohita mitättömäksi ItemAdded(SPItemEventProperties ominaisuudet) { SPFile f = ominaisuudet.ListItem.File; f.MoveTo(ominaisuudet.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Vain hankala vähän on "ominaisuudet. ListItem.ParentList.RootFolder.Url". MoveTo() menetelmässä URL. Että muussattu ylös merkkijono pistettä minulle minun nykyisen asiakirjakirjaston pääkansioon. Tämä antaa minulle välttää mitään kovaa koodaus minun tapahtuma vastaanotin.
Tämä on enemmän hyötyä versio, joka ei sama asia, mutta määrittää tiedoston nimi "Title":
yleiset Ohita mitättömäksi ItemAdded(SPItemEventProperties ominaisuudet) { DisableEventFiring(); // Määrittää tämän kohteen otsikko itse tiedoston nimi. // HUOMAUTUS: Toimeksianto on toteutettava ennen kuin itse-tiedoston muokkaaminen. // Jossa päivitys() jäsenen SPFile-tiedoston näyttää estävän ominaisuudet // jossain mielessä. Päivitykset "osastoon" epäonnistui, kunnes se muuta (ja päivittää() Soita) // tiedostonimen edessä muutos siirrettiin. ominaisuudet.Luettelokohde["Otsikko"] = ominaisuudet.ListItem.File.Name; ominaisuudet.ListItem.Update(); SPFile f = ominaisuudet.ListItem.File; // Saat tiedoston tunniste. Tarvitsemme sitä myöhemmin. merkkijono spfileExt = Uusi Fribidi(f.Name).Laajennus; // Nimeä tiedosto luettelokohteen tunnus ja käyttää tiedostotunnistetta pitämään // se ennallaan. f.MoveTo(ominaisuudet.ListItem.ParentList.RootFolder.Url + "/" + ominaisuudet.Luettelokohde["ID"] + spfileExt); // Vahvista liikkua. f.Update(); EnableEventFiring(); } |