OpenBinaryDirect()运行时的exeption:写入开始后无法设置此属性
问题描述:
我试图使用C#从sharepoint文档库下载文档。OpenBinaryDirect()运行时的exeption:写入开始后无法设置此属性
现在在openBinaryDirect()方法上获得一个异常“此属性无法在写入启动后设置”。
“‘System.InvalidOperationException’类型的未处理的异常出现在System.dll中
附加信息:此属性不能写作开始后进行设置。”
请帮我解决这个问题。有没有其他方法可以从sharepoint(csom)下载文档。
ClientContext ctx;
ctx = new ClientContext("url");
string pass = "pass";
SecureString secureString = new SecureString();
foreach (char c in pass.ToCharArray())
{
secureString.AppendChar(c);
}
ctx.Credentials = new SharePointOnlineCredentials(".onmicrosoft.com",secureString);
FileCollection files = ctx.Web.GetFolderByServerRelativeUrl("Salary document Demo").Files;
ctx.Load(files);
ctx.ExecuteQuery();
foreach (Microsoft.SharePoint.Client.File file in files)
{
FileInformation fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctx, file.ServerRelativeUrl);
ctx.ExecuteQuery();
var filePath = @"c:\downloads" + file.Name;
using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
{
fileInfo.Stream.CopyTo(fileStream);
}
}
答
安装新的NuGet包解决了这个问题:
Microsoft.Sharepoint.2013.Client.16
https://www.nuget.org/packages/Microsoft.Sharepoint.2013.Client.16/
它,因为你重用循环内的FileInfo对象。 –
所以我可以做别的。有什么建议么 ? –
你可以调试,并找出这到底是什么? filepath变量中的值又是什么? –