How to create Document Set using CSOM in SharePoint 2013

A Document Set is a group of related documents that can be created in one step and then managed as a single entity. Please refer http://office.microsoft.com/en-in/sharepoint-server-help/introduction-to-document-sets-HA101782466.aspx?CTT=5&origin=HA101782461 to understand more about Document Set. Here you will see how to create Document Set using CSOM in SharePoint 2013

Namespaces

using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.DocumentSet;

Assemblies

Microsoft.SharePoint.Client.dll;
Microsoft.SharePoint.Client.RunTime.dll;
Microsoft.SharePoint.Client.DocumentManagement.dll;

Code Snippet

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.DocumentSet;

namespace CSOMSamples
{
    class Program
    {
        static void Main(string[] args)
        {
            //// String Variable to store the siteURL
            string siteURL = "http://c4968397007/";

            //// String Variable to store the document set name
            string dsName = "Vijai Documents";

            //// Get the context for the SharePoint Site to access the data
            ClientContext clientContext = new ClientContext(siteURL);

            //// Get the document library in which the document set has to be created
            List list = clientContext.Web.Lists.GetByTitle("Documents");

            //// Get the parent folder where the document set has to be created
            Folder parentFolder = list.RootFolder;

            //// Get the "Document Set" content type by id (Document Set content type Id : 0x0120D520) for the document library
            ContentType ct = clientContext.Web.ContentTypes.GetById("0x0120D520");
            clientContext.Load(ct);
            clientContext.ExecuteQuery();

            //// Create a new document set
            //// A new document set will be created in "Documents" library as "Vijai Documents" under which you can add the documents
            DocumentSet.Create(clientContext, parentFolder, dsName, ct.Id);
            clientContext.ExecuteQuery();
        }
    }
}