سريعة & من السهل: إعادة تسمية الملف الذي تم تحميله باستخدام طراز كائن SharePoint عن طريق استقبال حدث

التحديث: هذا يعمل ولكن هناك قيود كبيرة التي يرد وصفها في التعليقات. لا يزال قد يكون هذا مفيداً في بعض مفروض.

التحديث 2: في بلدي المشروع الحالي, دائماً للمستخدمين تحميل الوثائق. وكنتيجة لذلك, أنا لا تقم بتشغيل إلى مشكلة حيث يتم تشغيل MS Word ويعتقد أنه تمت إعادة تسمية الملف على أنه. يمكنني تشغيل إلى مشكلة, "الملف تم تعديله من قبل شخص آخر" وحل هذا عن طريق علم نوع إشارة بسيطة. يحتاج المستخدمون إلى تغيير حقل بيانات الوصفية من قيمته الافتراضية إلى شيء آخر. إيتيموبداتيد() المتلقي يبحث عن قيمة صالحة هناك قبل إجراء إعادة تسمية فعلا، ومنذ ذلك الحين, لم تكن لدى أي مشاكل. قد تختلف من الأميال الخاص بك.

لدى متطلبات عميل لتغيير اسم الملفات التي يتم تحميلها إلى مكتبة مستندات معينة لتتوافق مع اصطلاح تسمية خاصة. لا يوفر API تسمية "()" الأسلوب. وبدلاً من ذلك, ونحن نستخدم "MoveTo(…)". وإليك قليلاً الحد أدنى من التعليمات البرمجية لإنجاز هذا:

 العامة تجاوز باطلة ItemAdded(سبيتيميفينتبروبيرتييس خصائص)
        {
            SPFile f = خصائص.ListItem.File;

            f.MoveTo(خصائص.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

بت صعبة فقط هو "الخصائص. ListItem.ParentList.RootFolder.Url ". MoveTo() يتطلب الأسلوب URL. أن هرس نقطة السلسلة لي إلى المجلد الجذر من بلدي مكتبة المستندات الحالية. وهذا ما يسمح لي لتجنب أي ترميز الثابت في جهاز استقبال الحدث.

هذا هو نسخة أكثر فائدة أن يفعل الشيء نفسه, ولكن يقوم بتعيين اسم الملف إلى "عنوان":

 العامة تجاوز باطلة ItemAdded(سبيتيميفينتبروبيرتييس خصائص)
        {
            ديسابليفينتفيرينج();

            // تعيين عنوان هذا البند إلى اسم الملف نفسه.
 // ملاحظة: هذا التعيين يجب أن تتم قبل أن نقوم بتعديل الملف نفسه.
 // استدعاء التحديث() على SPFile ويبدو أن يبطل الخصائص في
 // بعض الشعور.  التحديثات إلى عنوان "" فشلت حتى أن تغيير (والتحديث() المكالمة)
 // تم نقل أمام التغيير إلى اسم الملف.
            خصائص.عنصر القائمة["عنوان"] = الخصائص.ListItem.File.Name;

            خصائص.ListItem.Update();

            SPFile f = خصائص.ListItem.File;

            // الحصول على التمديد للملف.  نحن بحاجة إلى ذلك في وقت لاحق.
 السلسلة سبفيليكست = الجديد FileInfo(f.Name).ملحق;

            // إعادة تسمية الملف إلى معرف عنصر القائمة واستخدام ملحق اسم الملف للحفاظ على
 // هذا الجزء من أنها سليمة.
            f.MoveTo(خصائص.ListItem.ParentList.RootFolder.Url +
                "/" + خصائص.عنصر القائمة["معرف"] + سبفيليكست);

            // ارتكاب هذه الخطوة.
            f.Update();

            انابليفينتفيرينج();
        }

4 افكار عن "سريعة & من السهل: إعادة تسمية الملف الذي تم تحميله باستخدام طراز كائن SharePoint عن طريق استقبال حدث

  1. لا يوجد اسم
    أيضا, إذا كان يمكنك القيام بذلك من داخل Word, فإنه سيتم إرجاع خطأ ويقول الملف غير موجود. وقال أنه لا حول عنوان URL الجديد. لم أجد حتى الآن وسيلة للالتفاف حول هذا.
    الرد
  2. بول غالفين
    شكرا لافتاً إلى أن. أنا لا أعرف جوابا على أنه أحد أما … سيكون من المثير للاهتمام أن نرى كيفية التعامل معه.
    RE: عدم التزامن & إعادة توجيه
    وأتساءل عما إذا نقله إلى إيتيمادينج سيتم حلها. وهذا حفرة كبيرة.
    بفضل!
    –بول
    الرد
  3. نديم ميتها
    لأنه يحصل على نقل الملف بشكل غير متزامن, وهناك إمكانية ليتم توجيهه إلى EditForm.aspx قبل التحرك وتلتزم (وهذا أمر سيئ). سترى أن يحدث هذا إذا كان يمكنك جعل التعليمات البرمجية النوم قبل السطر MoveTo. ما زلت لم ترد على ما يمكن فعله إزاء هذه المشكلة وبصرف النظر عن استخدام نموذج تحرير مخصصة.
    الرد

اترك رد إلى نديم ميتها إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها *