التحديث: هذا يعمل ولكن هناك قيود كبيرة التي يرد وصفها في التعليقات. لا يزال قد يكون هذا مفيداً في بعض مفروض.
التحديث 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(); انابليفينتفيرينج(); } |