Logo

.Net Core 下载 SharePoint Online 文件

photo

2024年04月09日

  前言

  最近,在使用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中的一些区别,如下图:

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
本文为原创文章,请注意保留出处!

热门文章

WordPress 后台编辑器样式实现直接预览 在WordPress3.0以后,有一个新的实用功能:你可以更改默认后台编辑器(TinyMCE)的样...WordPress后台编辑器样式实现直接预览 作者:Pastore Antonio
1533 浏览量
【干货】Chrome插件(扩展)开发全攻略 写在前面我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的...【干货】Chrome插件(扩展)开发全攻略 作者:Pastore Antonio
1488 浏览量
memcached 处理 多端口:https://blog.csdn.net/Erica_1230/article/deta...memcached处理 作者:Pastore Antonio
1481 浏览量
使用Nginx+WordPress搭建个人网站 背景很多研究技术的朋友喜欢写博客。如果希望搭建一个完全属于自己的网站,也并不困难。这里简要分享一下...使用Nginx+WordPress搭建个人网站 作者:Pastore Antonio
1453 浏览量
C#图片处理 通常对一幅图片的处理包括:格式变换,缩放(Scale),翻转(Rotate),截取(Clip),滤镜...C#图片处理 作者:Pastore Antonio
1446 浏览量