NAUJINIMAS: Tai veikia bet yra didelių trūkumų, kurios yra apibūdintos komentarus. Tai vis dar gali būti naudinga, kai kurių aplinkybių.
NAUJINIMAS 2: Į mano dabartinis projektas, vartotojai visada nusiųsti dokumentų. Todėl, Aš ne paleisti į problemų kur MS Word veikia ir mano, kad failas buvo pervardytas į jį. Aš paleisti į problemų, "failas buvo pakeistas kažkas" ir išspręsti tai per paprastas semaforo tipo vėliava. Vartotojams reikia pakeisti meta duomenų lauką numatytąją reikšmę į ką nors kita. Į itemupdated() imtuvas ieško galioja vertės, prieš atlikdami, pervardyti ir nuo tada, Aš neturėjo jokių problemų. Jūsų rida gali skirtis.
Turiu klientas reikalavimas pakeisti failus įkelti į konkrečią dokumentų biblioteką įtaisai atitinka ypač įvardijimo. API nepateikia "pervardyti()" metodas. Vietoj, Mes naudojame "MoveTo(…)". Čia yra šiek tiek minimalus kodas tai pasiekti:
visuomenės Nepaisyti negalioja ItemAdded(SPItemEventProperties ypatybės) { SPFile f = ypatybės.ListItem.File; f.MoveTo(ypatybės.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Tik sudėtinga bitas yra "savybes. ListItem.ParentList.RootFolder.Url". Į MoveTo() metodui reikia URL. Kad koše iki eilutės taškų mane į šakninį aplanką mano dabartinis dokumentų bibliotekos. Tai leidžia man išvengti bet sunku kodavimo mano atveju imtuvas.
Tai yra daugiau naudinga versija, kad daro tą patį, Tačiau priskiria failo pavadinimą "Title":
visuomenės Nepaisyti negalioja ItemAdded(SPItemEventProperties ypatybės) { DisableEventFiring(); // Šio elemento pavadinimas priskirti pačios rinkmenos pavadinimas. // PASTABA: Šiame pavedime turi vykti, prieš mes pakeisti pačiame faile. // Raginama atnaujinti() dėl to SPFile atrodo, kad pripažinti negaliojančiais ypatybės // tam tikra prasme. Atnaujinimus į "pavadinimas" nepavyko tol, kol kad pakeisti (ir atnaujinti() skambinti) // buvo perkelta prieš pakeisti į failo vardas. ypatybės.ListItem["Pavadinimas"] = ypatybės.ListItem.File.Name; ypatybės.ListItem.Update(); SPFile f = ypatybės.ListItem.File; // Gauti failo plėtinys. Mums reikia, kad vėliau. eilutė spfileExt = naujas FileInfo(f.name).Pratęsimas; // Pervardykite failą į sąrašo elemento ID ir tvarkyti naudoja failo plėtinį // kad jo neapgadinto laivo dalis. f.MoveTo(ypatybės.ListItem.ParentList.RootFolder.Url + "/" + ypatybės.ListItem["ID"] + spfileExt); // Įsipareigoti perkelti. f.Update(); EnableEventFiring(); } |