使用 C#.net 从 Sharepoint Online 下载文件?

生命值

我想将文件\文件从 SharePoint Online 下载到我的本地,但我正在努力处理代码示例。我在谷歌上搜索,但没有得到任何有价值的信息。

LCJ

以下 C# 程序适用于从 SharePoint 下载文件

使用 NuGet 数据包管理器,安装Microsoft.SharePointOnline.CSOM

This package contains SharePoint and Client Object Model libraries

C#代码

using Microsoft.SharePoint.Client;
using System;
using System.IO;
using System.Linq;
using System.Security;

namespace SharePointFileDownlaload
{
    class Program
    {
        static void Main(string[] args)
        {
            string UserName = String.Empty;
            Console.Write("Type username and press enter: ");
            UserName = Console.ReadLine();

            string Pwd = String.Empty;
            Console.Write("Type password and press enter: ");
            Pwd = Console.ReadLine();

            string drive = String.Empty;
            Console.Write("Type the computer drive where you want to store the file and press enter: ");
            drive = Console.ReadLine();

            Console.WriteLine("Process started .... ");
           
            try
            {
                DownloadFilesFromSharePoint("MyFolder", UserName, Pwd, drive);
            }
            catch(Exception ex)
            {
                Console.WriteLine("ERROR: "+ex.Message);
            }

            Console.ReadLine();
        }

        private static void DownloadFilesFromSharePoint(string folderName, string UserName, string Pwd, string driveName)
        {
            //Load Libraries from SharePoint
            ClientContext ctxSite = GetSPOContext(UserName, Pwd);
            ctxSite.Load(ctxSite.Web.Lists);
            ctxSite.ExecuteQuery();

            Web web = ctxSite.Web;
            var docLibs = ctxSite.LoadQuery(web.Lists.Where(l => l.BaseTemplate == 101));  //DocumentLibrary only
            ctxSite.ExecuteQuery();

            foreach (var list in docLibs)
            {
                //Console.WriteLine(list.Title);
                ctxSite.Load(list.RootFolder.Folders);
                ctxSite.ExecuteQuery();

                string listTitle = list.Title;
                

                //Console.WriteLine("List Tile ------------------------------- " + listTitle);
                foreach (Folder folder in list.RootFolder.Folders)
                {
                    ctxSite.Load(folder.Files);
                    ctxSite.ExecuteQuery();

                    if (String.Equals(folder.Name, folderName, StringComparison.OrdinalIgnoreCase))
                    {
                        var folderDestination = driveName+@":\Test\SharePoint\" + listTitle + @"\" + folderName + @"\";
                        ctxSite.Load(folder.Files);
                        ctxSite.ExecuteQuery();

                        foreach (var file in folder.Files)
                        {
                            var fileName = Path.Combine(folderDestination, file.Name);
                            if (!System.IO.File.Exists(fileName))
                            {
                                Directory.CreateDirectory(folderDestination);
                                var fileRef = file.ServerRelativeUrl;
                                var fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctxSite, fileRef);
                                using (var fileStream = System.IO.File.Create(fileName))
                                {
                                    fileInfo.Stream.CopyTo(fileStream);
                                }
                            }
                        }
                        Console.WriteLine("Downloaded the file in " + folderDestination);
                    }

                }
                
            }
            
        }

        private static ClientContext GetSPOContext(string UserName, string Pwd)
        {
            
            string spsiteurl = "https://company.sharepoint.com/sites/YourSite/";  
            
            var secure = new SecureString();
            foreach (char c in Pwd)
            {
                secure.AppendChar(c);
            }
            ClientContext spoContext = new ClientContext(spsiteurl);
            spoContext.Credentials = new SharePointOnlineCredentials(UserName, secure);
            return spoContext;

        }

        private static void GetAllItemNamesInSP(string UserName, string Pwd)
        {
            //Load Libraries from SharePoint
            ClientContext ctxSite = GetSPOContext(UserName, Pwd);
            ctxSite.Load(ctxSite.Web.Lists);
            ctxSite.ExecuteQuery();

            foreach (List list in ctxSite.Web.Lists)
            {
                string nameTest = list.Title;
                string testVal = list.BaseType.ToString();
                Console.WriteLine(nameTest + " -------------- " + testVal);
                if (list.BaseType.ToString() == "DocumentLibrary")
                {
                }

            }
            Console.ReadLine();
        }

    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用PowerShell从SharePoint Online下载文件

来自分类Dev

使用Java从Sharepoint下载文件

来自分类Dev

如何使用VBA从Sharepoint下载文件

来自分类Dev

使用VB.net下载文件

来自分类Dev

从SharePoint下载文件

来自分类Dev

从Sharepoint下载文件

来自分类Dev

使用Microsoft.SharePoint.Client从OneDrive下载文件

来自分类Dev

使用nusoap通过Web服务从Sharepoint库下载文件

来自分类Dev

使用C#从SharePoint Online外部获取SharePoint列表数据

来自分类Dev

如何使用C从http下载文件?

来自分类Dev

使用curl下载文件的C程序

来自分类Dev

使用c#WebClient下载文件

来自分类Dev

使用asp.net mvc下载文件

来自分类Dev

如何使用ASP.NET下载文件

来自分类Dev

使用asp.net mvc下载文件

来自分类Dev

使用angular.js,asp.net下载文件

来自分类Dev

使用 .NET 在 Autodesk Forge 上下载文件

来自分类Dev

使用Microsoft Graph API将文件上传到SharePoint Online

来自分类Dev

使用C#在IE 11中自动下载文件

来自分类Dev

如何使用C Socket编程下载文件

来自分类Dev

如何使用c#名称下载文件?

来自分类Dev

如何使用C#从NetSuite中的FileCabinet下载文件

来自分类Dev

使用C#从SQL Server下载文件

来自分类Dev

使用swift和objective-c下载文件

来自分类Dev

C#如何使用libcurlnet下载文件

来自分类Dev

如何使用C#在Sharepoint库子文件夹中上载文件?

来自分类Dev

托管在 Azure 和 WebApi C# .Net Core 2.2 上的 React 应用程序上的 Sharepoint online/365 集成(上传文件)

来自分类Dev

使用Asp.Net IHttpHandler下载文件会产生不同的文件属性结果

来自分类Dev

在ASP.NET中使用HttpContext.Current.Response.TransmitFile的ASP.net下载文件

Related 相关文章

热门标签

归档