দ্রুত & সহজ: আপলোড করা ফাইল একটি ইভেন্ট রিসিভার মাধ্যমে SharePoint অবজেক্ট মডেল ব্যবহার পুনঃনামকরণ

আপডেট: This works but there are significant limitations which are described in the comments. This may still be useful in some cirumstances.

আপডেট 2: আমার বর্তমান প্রকল্প, users always upload documents. ফলে, I don’t run into a problem where MS Word is running and thinks that the file was renamed on it. I did run into a problem, "the file was modified by someone else" and solved this via a simple semaphore type flag. Users need to change a meta data field from its default value to something else. The itemupdated() একটি বৈধ মান জন্য রিসিভার দেখায় সেখানে আসলে নামান্তর সঞ্চালনের পূর্বে এবং তদবধি, I have not had any problems. Your mileage may vary.

I have a client requirement to change the name of files uploaded to a specific document library to conform with a particular naming convention. The API does not provide a "rename()" পদ্ধতি. পরিবর্তে, আমরা ব্যবহার "MoveTo(…)". Here is a minimal bit of code to accomplish this:

 জনসাধারণের অগ্রাহ্য করা অনধিকৃত ItemAdded(SPItemEventProperties বৈশিষ্ট্য)
        {
            Spfile চ = properties.ListItem.File;

            f.MoveTo(properties.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

The only tricky bit is the "properties.ListItem.ParentList.RootFolder.Url". The MoveTo() method requires a URL. That mashed up string points me to the root folder of my current document library. This allows me to avoid any hard coding in my event receiver.

এটি একটি কার্যকর সংস্করণ যে একই জিনিস না, but assigns the name of the file to "Title":

 জনসাধারণের অগ্রাহ্য করা অনধিকৃত ItemAdded(SPItemEventProperties বৈশিষ্ট্য)
        {
            DisableEventFiring();

            // ফাইল নিজেই নামের এই আইটেমটি শিরোনাম ধার্য করুন.
 // উল্লেখ্য: এই নিয়োগ সঞ্চালিত আগে আমরা ফাইল নিজেকে পরিবর্তন করা আবশ্যক.
 // আপডেট কলিং() SPFile উপর মধ্যে সম্পত্তি মনে অসিদ্ধ
 // কিছু জ্ঞান.  Updates to "Title" যে পরিবর্তন পর্যন্ত ব্যর্থ (এবং আপডেট() কল)
 // পরিবর্তন সামনে ফাইলের নাম থেকে সরানো হয়েছে.
            properties.ListItem["Title"] = Properties.ListItem.File.Name;

            properties.ListItem.Update();

            Spfile চ = properties.ListItem.File;

            // ফাইলের এক্সটেনশান পান.  আমরা যে পরে প্রয়োজন.
 স্ট্রিং spfileExt = নতুন ফাইল তথ্য(f.Name).প্রসার;

            // তালিকার আইটেম এর ID-র ফাইল এবং পুনঃনামকরণ ফাইল এক্সটেনশন রাখতে ব্যবহার
 // এটা যে অংশ অক্ষত.
            f.MoveTo(properties.ListItem.ParentList.RootFolder.Url +
                "/" + properties.ListItem["ID"] + spfileExt);

            // পদক্ষেপ করা.
            f.Update();

            EnableEventFiring();
        }

4 চিন্তা "দ্রুত & সহজ: আপলোড করা ফাইল একটি ইভেন্ট রিসিভার মাধ্যমে SharePoint অবজেক্ট মডেল ব্যবহার পুনঃনামকরণ

  1. কোন নাম
    এছাড়াও, আপনি শব্দ মধ্যে থেকে এই কাজ যদি, এটি একটি ত্রুটি ফিরে এবং ফাইল উপস্থিত না বলতে হবে. এটা নতুন URL সম্পর্কে বলা হয় না. আমি এখনো এই সমস্যা এড়ানোর একটি উপায় খুঁজে পাওয়া যায় নি.
  2. পল Galvin
    যে ইশারা জন্য ধন্যবাদ. আমি যে এক একটি উত্তর জানি না … আকর্ষণীয় হবে তা পরিচালনা দেখতে.
    ২: ASYNC & ফেরৎ
    একটি ItemAdding এটি পরিবর্তনশীল এটা সমাধান হবে যদি আমি ভাবছি. যে একটি বড় গর্ত আছে.
    ধন্যবাদ!
    –পল
  3. নাদিম Mitha
    ফাইল অ্যাসিঙ্ক্রোনাস সরানো পায়, কারণ, সরানো প্রতিশ্রুতিবদ্ধ আগে EditForm.aspx থেকে আপনাকে পুনঃনির্দেশিত করা হচ্ছে একটি সম্ভাবনা আছে (এবং যে খারাপ). আপনি MoveTo লাইন আগে কোড ঘুম যদি আপনি এই যে এরকম দেখতে পাবেন. আমি এখনও একটি কাস্টমাইজড সম্পাদনা ফর্ম ব্যবহার থেকে সরাইয়া যে সমস্যা সম্পর্কে করা যায় তা মূর্ত আউট নি.

একটি উত্তর ত্যাগ নাদিম Mitha উত্তর বাতিল করুন

আপনার ইমেইল ঠিকানা প্রচার করা হবে না. প্রয়োজনীয় ক্ষেত্রগুলি চিহ্নিত করা আছে *