Y NEWYDDION DIWEDDARAF: Mae hyn yn gweithio ond mae cyfyngiadau sylweddol a ddisgrifir yn y sylwadau. Gall hyn dal i fod yn ddefnyddiol mewn rhai cirumstances.
Y NEWYDDION DIWEDDARAF 2: Yn fy prosiect presennol, Mae defnyddwyr bob amser yn lanlwytho dogfennau. O ganlyniad,, Peidiwch â laddaf i broblem lle mae MS Word yn rhedeg ac yn credu bod ailenwyd y ffeil ar ei. Doedd wedi rhedeg i broblem, "Roedd y ffeil haddasu gan rywun arall" a datrys hyn drwy baner math cyfeiriad semaffor syml. Mae angen i ddefnyddwyr newid cae meta data o ei gwerth diofyn i rywbeth arall. Y itemupdated() derbynnydd yn edrych am werth dilys yno cyn mewn gwirionedd yn perfformio ail-enwi ac ers hynny, Nid wyf wedi cael unrhyw broblemau. Gall eich milltiroedd yn amrywio.
Mae gennyf gofyniad cleient i newid enw'r ffeil llwytho i fyny i Llyfrgell o ddogfennau penodol i gydymffurfio â Confensiwn Enwi penodol. Nid yw y API yn darparu "ailenwi()" dull. Yn lle hynny, rydym yn defnyddio "MoveTo(…)". Dyma ychydig bach iawn o Cod i gyflawni hyn:
cyhoeddus gor-redeg gwag ItemAdded(SPItemEventProperties eiddo) { SPFile f = properties.ListItem.File; f.MoveTo(properties.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Y rhan anodd yn unig yw 'properties. ListItem.ParentList.RootFolder.Url". Y MoveTo() Mae'r dull yn gofyn URL. Roedd hynny wedi'i stwnsio pwyntiau llinyn mi i ffolder wraidd fy llyfrgell ddogfen bresennol. Mae hyn yn fy ngalluogi i osgoi unrhyw codau caled yn fy derbynnydd digwyddiad.
Mae hwn yn fersiwn mwy defnyddiol sy'n gwneud yr un peth, ond neilltuo enw'r ffeil "Teitl":
cyhoeddus gor-redeg gwag ItemAdded(SPItemEventProperties eiddo) { DisableEventFiring(); // Neilltuo teitl yr eitem hon i enw ffeil ei hun. // NODYN: Rhaid i'r aseiniad yn cael ei gynnal cyn i ni addasu'r ffeil ei hun. // Galw diweddariad() ar y SPFile ymddangos i annilysu eiddo yn // ychydig o synnwyr. "Teitl y wybodaeth ddiweddaraf am" wedi methu hyd nes bod y newid (a diweddaru() ffoniwch) // eu symud o flaen y newid i'r enw ffeil. properties.ListItem["Teitl"] = Properties.ListItem.File.Name; properties.ListItem.Update(); SPFile f = properties.ListItem.File; // Cael estyniad y ffeil. Mae angen bod yn nes ymlaen. llinyn spfileExt = newydd Gwybodaeth Ffeil(f.Name).Estyniad; // Ail-enwi'r ffeil i adnabod yr eitem rhestr a defnyddio'r estyniad ffeil i gadw // y rhan honno ohono yn gyfan. f.MoveTo(properties.ListItem.ParentList.RootFolder.Url + "/" + properties.ListItem["ID"] + spfileExt); // Ymrwymo symud. f.Update(); EnableEventFiring(); } |