C# OpenBinaryDirect()运行时验证:在开始写入后无法设置此属性

C# OpenBinaryDirect()运行时验证:在开始写入后无法设置此属性,c#,.net,sharepoint,sharepoint-2010,sharepoint-2013,C#,.net,Sharepoint,Sharepoint 2010,Sharepoint 2013,我正在尝试使用C#从sharepoint文档库下载文档 现在,在openBinaryDirect()方法上出现异常“在开始写入后无法设置此属性” System.dll中发生“System.InvalidOperationException”类型的未处理异常 其他信息:在开始写入后无法设置此属性。“ 请帮我解决这个问题。是否有其他方法从sharepoint(csom)下载文档 通过安装新的Nuget软件包解决了此问题: Microsoft.Sharepoint.2013.Client.16 这是因

我正在尝试使用C#从sharepoint文档库下载文档

现在,在openBinaryDirect()方法上出现异常“在开始写入后无法设置此属性”

System.dll中发生“System.InvalidOperationException”类型的未处理异常

其他信息:在开始写入后无法设置此属性。“

请帮我解决这个问题。是否有其他方法从sharepoint(csom)下载文档


通过安装新的Nuget软件包解决了此问题:

Microsoft.Sharepoint.2013.Client.16


这是因为您正在循环中重用fileInfo对象。所以我还能做什么呢。有什么建议吗?你能调试并找出这到底是从哪里来的吗?另外,filepath变量中的值是多少?获取FileInfoomation fileinfo=。。。。。行,确切地说是ctx变量。异常发生后,执行停止在那里。文件路径是下载后保存数据的本地驱动器位置。请查看此博客-
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);
    }
}