Rapide & Facile: Renomi Uploaded Dosiero Uzanta SharePoint Objekta Modelo Tra Eventa Ricevilo

ĜISDATIGO: Ĉi tiuj laboroj sed estas gravaj limoj kiu estas priskribita en la rimarkoj. Tio ĉi ankoraŭ povas esti utila en kelkaj cirumstances.

ĜISDATIGO 2: En mia nuna projekto, Uzantoj ĉiam alŝutaj dokumentoj. Rezulte, Mi ne kuras en problemo kie f-ino Word estas kuranta kaj pensas ke la dosiero estis renomita sur ĝi. Mi ja kuris en problemo, "La dosiero estis modifita de iu alia" Kaj solvis tion ĉi tra simpla semafora tipa flago. Uzantoj devas ŝanĝi meta datuma kampo de ĝia defaŭlta valoro al io alia. La itemupdated() Ricevilo serĉas validan valoron tie antaŭ ol efektive elfaranta la renomi kaj pro tio ke tiam, Mi ne havis ajnajn problemojn. Via mileage povas varii.

Mi havas klientan postulon ŝanĝi la nomon de dosieroj uploaded al specifa dokumenta biblioteko konformiĝi kun aparta nomanta kongreso. La API ne provizas "renomi()" Metodo. Male, Ni uzas "MoveTo(…)". Ĉi tie estas minimuma peco de kodo plenumi tion ĉi:

 Publika Superregi Malplena ItemAdded(SPItemEventProperties Nemoveblaĵoj)
        {
            SPFile F = #nemovebla?o.ListItem.Dosiero;

            F.MoveTo(#Nemovebla?o.ListItem.ParentList.RootFolder.Url + "/Xyzzy.Doc");
            F.#?Isdatigo();

        }

La nura delikata peco estas la "nemoveblaĵoj.ListItem.ParentList.RootFolder.Url". La MoveTo() Metodo postulas URL. Kiu pistis supre ŝnuron indikas min al la radika teko de mia nuna dokumenta biblioteko. Tio ĉi permesas min eviti ajnan malfacilan kodiĝon en mia eventa ricevilo.

#Tio ?i estas pli utila versio kiu faras la saman aferon, Sed asignas la nomon de la dosiero "Titoli":

 Publika Superregi Malplena ItemAdded(SPItemEventProperties Nemoveblaĵoj)
        {
            DisableEventFiring();

            // Asigni la titolon de #?i tiu ero al la nomo de dosiero ?i mem.
 // NOTO: #?I tiu komisio devas okazi #anta? ol ni modifas la dosieron ?i mem.
 // Vokanta #?isdatigo() Sur la SPFile #?ajni nuligi la #nemovebla?o en
 // Iu sento.  #?Isdatigo  "Titoli" Malsukcesita #?is tiu #?an?o (Kaj #?isdatigo() Voko)
 // Estis movita #anta? la #?an?o al la dosiera nomo.
            Nemoveblaĵoj.ListItem["Titolo"] = #Nemovebla?o.ListItem.Dosiero.Nomo;

            #Nemovebla?o.ListItem.#?Isdatigo();

            SPFile F = #nemovebla?o.ListItem.Dosiero;

            // Akiri la #etenda?o de la dosiero.  Ni devas ke poste.
 Ŝnuro SpfileExt = Nova FileInfo(F.Nomo).#Etenda?o;

            // Renomi la dosieron al la #IDENTIGA?O de la listo ero kaj uzi la dosieran #etenda?o teni
 // KE parto de ?i sendifekta.
            F.MoveTo(#Nemovebla?o.ListItem.ParentList.RootFolder.Url +
                "/" + Nemoveblaĵoj.ListItem["#IDENTIGA?O"] + SpfileExt);

            // Fari la movon.
            F.#?Isdatigo();

            EnableEventFiring();
        }

4 pensoj pri "Rapide & Facile: Renomi Uploaded Dosiero Uzanta SharePoint Objekta Modelo Tra Eventa Ricevilo

  1. Neniu nomo
    Ankaŭ, Se vi fari #tio ?i de ene de Vorto, ?i revenos eraron kaj diri la dosieron ne ekzistas. ?i ne estas dirita pri la nova URL. Mi ne #ankora? trovis vojon #?irka? #tio ?i.
    Respondo
  2. Paul Galvin
    Dankonas por indikanta ke ekstere. Mi ne scias respondon al tiu unu aŭ … Estos interesanta vidi kiel administri ?in.
    RE: Async & Redirektado
    Mi scivolas se movanta ĝin al ItemAdding solvos ĝin. Tio estas granda truo.
    Dankonas!
    –Paul
    Respondo
  3. Nadeem Mitha
    Ĉar la dosiero akiras movita asynchronously, Estas ebleco de estanta redirektita al EditForm.Aspx antaŭ la movo estas farita (Kaj tio estas malbone). Vi vidos ke tio ĉi okazas se vi faras la kodan dormon antaŭ la MoveTo linio. Mi ankoraŭ ne kalkulis ekstere kio povas esti farita pri tiu problemo flankenmetite de uzanta personigita redakti formon.
    Respondo

Lasi Respondon al Nadeem Mitha Nuligi respondon

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita *