***using (ClientContext clientContext = new PnP.Framework.AuthenticationManager().GetACSAppOnlyContext(siteUrl, clientID, clientSecret)) {
Web web = clientContext.Web;
fileUrl = downloadUrl + fileUrl + ".pptx";
Microsoft.SharePoint.Client.File filetoDownload =web.GetFileByUrl(fileUrl);
clientContext.Load(filetoDownload);
clientContext.ExecuteQuery();
Helper.CreateIfMissing(filePath);
var stream = filetoDownload.OpenBinaryStream();
clientContext.ExecuteQuery();
var fileName = Path.Combine(filePath, (string)filetoDownload.Name);
//Add in Config for downloadload
using (var fileStream = new FileStream(fileName, FileMode.Create))
{
stream.Value.CopyTo(fileStream);
}
path = fileName;
}***
配置: “downloadUrl”:“https://abc.sharepoint.com/:p:/r/sites/abcFolder/_layouts/15/Doc.aspx?sourcedoc=%7BA6BACCWE-E545-4823-A765-749100023273%7D&file=”
我想下载该文件并有两种方法
Sharepoint 文件夹结构 www.abcsite.com/MainFolder/SubFolder/文件名
文件格式:pptx
获取文档的一个简单方法是构建一个 REST API url。要下载存储在文档库中的文档,您可以使用此 URL 和 GET 方法(末尾的
$value
很重要!):
https://abc.sharepoint.com/sites/abcFolder/_api/web/GetFileByServerRelativeUrl('/sites/abcFolder/abcLibrary/MainFolder/SubFolder/FileName.pptx')/$value
如果您在网络浏览器中测试此 URL,文件名将为
$value
,但使用 C# 代码,您可以将下载的内容重命名为 FileName.pptx
之类的名称。
所以,是的,如果您知道文件存储在哪个站点/库/文件夹中,您可以根据文件名称下载文件。不要使用
Doc.aspx?sourcedoc
。