.Net Core 下载 SharePoint Online 文件
前言
最近,在使用Net Core写SharePoint的一些工具,这不写到了下载文件的功能,但是Net Core中有一些方法已经被遗弃了,所以记录一下。
正文
1.我们在Net Framework中,通常会使用下面的方法进行文件下载:
FileInformation fileinfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(context, filepath);
2.但是,OpenBinaryDirect这个方法在Net Core中被弃用了,我们只能换下面的方法了:
string filepath = "/sites/Sample/Shared Documents/Sample.xlsx"; ClientContext context = GetAppCtx(); Web web = context.Site.OpenWeb("Web"); File file = web.GetFileByServerRelativeUrl(filepath); Microsoft.SharePoint.Client.ClientResult<Stream> mstream = file.OpenBinaryStream(); context.Load(file); context.ExecuteQuery(); using (System.IO.FileStream localFS = System.IO.File.Open(@"D:\Sample.xlsx", FileMode.OpenOrCreate)) { mstream.Value.CopyTo(localFS); }
3.先要下载对应的工具包,如下图:
4.在头部引用PnP Framework的方法,如下:
using AuthenticationManager = PnP.Framework.AuthenticationManager;
5.编写用App Id进行认证的方法,这个方法是通用的,只需要更换siteUrl,appId和appSecret三个参数就可以了:
public static ClientContext GetAppCtx() { string siteUrl = "https://linyu.sharepoint.com/sites/Sample"; string appId = "e301b508-1234-5678-815d-1015df612345"; string appSecret = "NpHdv0fWHagI/8ja6kzBf1234abcabepkPRPqipAbt8="; try { AuthenticationManager repositoryAuthenticationManager = new AuthenticationManager(); ClientContext ctx = repositoryAuthenticationManager.GetACSAppOnlyContext(siteUrl, appId, appSecret); return ctx; } catch { return null; } }
6.我们看一下CSOM在Net Framework和Net Core中的一些区别,如下图:
博文推荐: |
SharePoint 2013 WebPart 管理工具分享[开源] |
基于SharePoint 2013的论坛解决方案[开源] |
SharePoint 2013 学习基础系列入门教程 |
SharePoint 2013 图文开发系列之门教程 |
SharePoint Designer 学习系列入门教程 |
特:如果有SharePoint项目,欢迎邮件联系我,Email:linyu_s@163.com |