using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security;
using System.Text;
using System.Threading.Tasks;
namespace MovingSharePoint
{
class Program
{
/// <summary>
/// Move Desktop or Drive file for same structure into SharePoint
online document Lib
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
string login = "admin@spdevloper.onmicrosoft.com"; //give your username here
string password = "Password@123"; //give your password
var securePassword = new SecureString();
foreach (char c in password)
{
securePassword.AppendChar(c);
}
try
{
string siteUrl = "https://spdev.sharepoint.com/sites/dev/";
ClientContext clientContext = new ClientContext(siteUrl);
var onlineCredentials = new SharePointOnlineCredentials(login, securePassword);
clientContext.Credentials =
onlineCredentials;
FileHelper.UploadFoldersRecursively(clientContext, @"C:\OCR", "Documents"); // Folder name for ex:
Documents-> Create->OCR->then(inside) folder/file
Console.WriteLine("All Folder File inserted Successfully");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
}
}
public class FileHelper
{
public static void UploadDocument(ClientContext clientContext, string sourceFilePath, string serverRelativeDestinationPath)
{
using (var fs = new FileStream(sourceFilePath, FileMode.Open))
{
var fi = new FileInfo(sourceFilePath);
Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext,
serverRelativeDestinationPath, fs, true);
}
}
public static void UploadFolder(ClientContext clientContext, System.IO.DirectoryInfo folderInfo, Folder folder)
{
System.IO.FileInfo[] files = null;
System.IO.DirectoryInfo[] subDirs = null;
try
{
files = folderInfo.GetFiles("*.*");
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine(e.Message);
}
catch (System.IO.DirectoryNotFoundException e)
{
Console.WriteLine(e.Message);
}
if (files != null)
{
foreach (System.IO.FileInfo fi in files)
{
Console.WriteLine(fi.FullName);
clientContext.Load(folder);
clientContext.ExecuteQuery();
UploadDocument(clientContext, fi.FullName, folder.ServerRelativeUrl + "/" + fi.Name);
}
subDirs =
folderInfo.GetDirectories();
foreach (System.IO.DirectoryInfo dirInfo in subDirs)
{
Folder subFolder =
folder.Folders.Add(dirInfo.Name);
clientContext.ExecuteQuery();
UploadFolder(clientContext,
dirInfo, subFolder);
}
}
}
public static void UploadFoldersRecursively(ClientContext clientContext, string sourceFolder, string destinationLigraryTitle)
{
Web web = clientContext.Web;
var query = clientContext.LoadQuery(web.Lists.Where(p => p.Title
== destinationLigraryTitle));
clientContext.ExecuteQuery();
List documentsLibrary = query.FirstOrDefault();
var folder = documentsLibrary.RootFolder;
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(sourceFolder);
clientContext.Load(documentsLibrary.RootFolder);
clientContext.ExecuteQuery();
folder =
documentsLibrary.RootFolder.Folders.Add(di.Name);
clientContext.ExecuteQuery();
FileHelper.UploadFolder(clientContext, di, folder);
}
}
}
No comments:
Post a Comment