Gyors & Könnyű: Segítségével a SharePoint objektum modell az eseményérzékelő keresztül feltöltött fájl átnevezése

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();
        }

4 gondolatok „Gyors & Könnyű: Segítségével a SharePoint objektum modell az eseményérzékelő keresztül feltöltött fájl átnevezése

  1. Név nélküli
    Is, Ha ezt a Word, Ez akarat visszatér hiba, és azt mondják, hogy a fájl nem létezik. Nem mesélt az új URL-cím. Nekem van nem alapít egy út körül ez.
    Válasz
  2. Paul Galvin
    Köszönet részére mutatva, hogy ki. Nem tudom a választ, hogy az egyik sem … érdekes látni, hogyan kell kezelni azt.
    RE: aszinkron & átirányítás
    Kíváncsi vagyok, ha mozgó ez-hoz egy ItemAdding akarat megfejt ez. Ez egy nagy lyuk.
    kösz!
    –Paul
    Válasz
  3. Nagyné Mitha
    Azért, mert a fájl lesz költözött aszinkron módon, van egy lehetőség-a lét utánaküldött-hoz EditForm.aspx előtt a lépés (és ez rossz). Látni fogja, hogy ez történik, ha a kódot a MoveTo sor előtt aludni. Még mindig nem alakított ki, mit lehet tenni, hogy a problémáról, eltekintve egy testreszabott szerkesztése űrlap segítségével.
    Válasz

hagyj válaszüzenetet

Az e-mail címed nem kerül nyilvánosságra. Kötelező kitölteni *