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中的一些区别,如下图:

橙子主题打折出售

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

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

热门文章

Navicat Premium 12.0.22 安装与破解 一、安装  NavicatPremium12.0.22的下载链接:https://pan.ba...NavicatPremium12.0.22安装与破解 作者:Pastore Antonio
1515 浏览量
C# JArray与JObject 的使用 STEP1、usingNewtonsoft.Json.Linq;STEP2、如何获取json里的...C#JArray与JObject的使用 作者:Pastore Antonio
1465 浏览量
解决mysql的配置ONLY_FULL_GROUP_BY引起的错误 由于自己的本地网站环境使用了mysql8.0的版本,在测试一个groupby的sql查...解决mysql的配置ONLY_FULL_GROUP_BY引起的错误 作者:Pastore Antonio
1448 浏览量
Windows server 2016 英文服务器安装中文语言包教程 1、下载windowsserver2016语言包下载地址:https://pan.baidu....Windowsserver2016英文服务器安装中文语言包教程 作者:Pastore Antonio
1407 浏览量
assembly(全局程序集缓存)中dll的导入和导出 本文主要讲一下关于assembly中的dll是怎么导入和导出的。浏览量:1,468 作者:Pastore Antonio
1403 浏览量