ATJAUNINĀJUMS: Tas darbojas, bet ir būtiski ierobežojumi, kas aprakstīta komentāri. Tas vēl joprojām var būt noderīgi, daži apstākļi.
ATJAUNINĀJUMS 2: Ar manu pašreizējo projektu, lietotāji vienmēr augšupielādēt dokumentus. Kā rezultātā, Es nedomāju saskaraties ar problēmu, kur MS Word ir palaista un domā, ka fails tika pārdēvēts par to. Man bija uzskriet problēmu, "fails tika modificēts kāds cits" un atrisināt šo, izmantojot vienkāršu semafora tipa karogu. Lietotājiem ir jāmaina meta datu lauks no tās noklusējuma vērtību uz kaut ko citu. Itemupdated() uztvērējs meklē tur derīgu vērtību pirms īstās pārdēvēt un pēc tam, Man nebija nekādas problēmas. Jūsu nobraukums var atšķirties.
Man ir klientu vajadzību mainīt nosaukumu uz konkrētu dokumentu bibliotēku, lai atbilstu konkrētā nosaukumdošanas augšupielādēto failu. API nenodrošina "pārdēvēšana()" metode. Tā vietā, mēs izmantojam "MoveTo(…)". Šeit ir mazliet minimālu kodu, lai to paveiktu:
valsts ignorēt anulēts ItemAdded(SPItemEventProperties rekvizīti) { SPFile f = īpašības.ListItem.File; f.MoveTo(rekvizītus.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Tikai grūts bit ir "rekvizītiem. ListItem.ParentList.RootFolder.Url". MoveTo() metode prasa URL. Ka biezeni virknē punkti mani saknes mape Mana pašreizējā dokumentu bibliotēkā. Tas ļauj man, lai izvairītos no jebkāda grūti kodēšanas manu notikumu uztvērēju.
Tas ir vairāk noderīgs versija, kas nav tas pats, bet piešķir faila nosaukumu "Title":
valsts ignorēt anulēts ItemAdded(SPItemEventProperties rekvizīti) { DisableEventFiring(); // Piešķirt šī vienuma nosaukums pats faila nosaukums. // PIEZĪME: Šis uzdevums ir jānotiek pirms mēs modificēsim pašā failā. // Aicinot atjaunināt() par SPFile, šķiet, atzīst par nederīgu rekvizīti // zināmā mērā. Atjauninājumus programmai "Title" līdz ko mainīt neizdevās (un atjaunināt() zvanu) // tika pārvietoti priekšā izmaiņas ar faila nosaukumu. rekvizītus.ListItem["Title"] = īpašības.ListItem.File.Name; rekvizītus.ListItem.Update(); SPFile f = īpašības.ListItem.File; // Iegūt faila paplašinājumu. Mums ir nepieciešams, kas vēlāk. virkne spfileExt = jaunā FileInfo(f.Name).Paplašinājums; // Pārdēvējiet failu saraksta vienuma ID un izmanto faila paplašinājumu, lai saglabātu // daļa, tas neskartu. f.MoveTo(rekvizītus.ListItem.ParentList.RootFolder.Url + "/" + rekvizītus.ListItem["ID"] + spfileExt); // Izdarīt gājienu. f.Update(); EnableEventFiring(); } |