.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 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
2012-04-27 SharePoint 调用 WebService操作List小记