无法通过 CSOM 将文件保存到 SharePoint Online,SaveBinaryDirect 上的 409 冲突

问题描述

我正在尝试使用 c# CSOM 从 SharePoint Online 版本控制的文档库下载、更改然后保存/覆盖 Word 文档。虽然我可以下载和更改,但保存会引发 409 冲突。

在下面的示例中,ctx 是客户端上下文,fileRef 是服务器相对 url。我尝试了以下代码的几种变体,它们似乎都会导致文件锁定、版本冲突或 409 冲突。

代码在 splistitemcollection 中的 item 循环内执行。

                            ctx.Load(item.File);
                            ctx.ExecuteQuery();
                            var fileRef = item.File.ServerRelativeUrl;                          
                            var fileName = Path.Combine("",(string)item.File.Name);

                            

                            using (var fs = new FileStream(fileName,FileMode.Create))
                            {
                                var fileInfo = SP.File.OpenBinaryDirect(ctx,fileRef);
                                fileInfo.Stream.copyTo(fs);
                                getProps(fs);
                            }
                                
                             using (var fus = new FileStream(fileName,FileMode.Open,FileAccess.Read))
                             {
                                 //crashes here      
                                SP.File.SaveBinaryDirect(ctx,fileRef,fus,true);
                             } 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)