我尝试使用C#从SharePoint中的文件中获取流。这是代码
ClientContext ctx = new ClientContext("http://mySharepointSite");
ctx.Credentials = new NetworkCredential("domain\\user", "mypwd");
Folder docx = ctx.Web.GetFolderByServerRelativeUrl(saveLocation);
ctx.Load(docx);
ctx.ExecuteQuery();
Microsoft.SharePoint.Client.File fileConcerned=ctx.Web.GetFileByServerRelativeUrl(docx.ServerRelativeUrl + "/" +nameFile + ".docx");
MemoryStream stream = new MemoryStream());
ctx.Load(fileConcerned);
ClientResult<Stream> str = fileConcerned.OpenBinaryStream();
ctx.ExecuteQuery();
程序在ExecuteQuery()
返回错误,并告诉我没有OpenBinaryStream()
方法。我试图交换这两行,但在我的stream
值str
为空之后。这是为什么?
答案 0 :(得分:1)
我终于明白了。
为了使OpenBinaryStream()
有效,我需要处理以前的连接。
换句话说,我认为这段代码有效: [...]
ctx.ExecuteQuery();
MemoryStream stream = new MemoryStream());
ctx.Load(fileConcerned);
ctx.Dispose();
ClientResult<Stream> str = fileConcerned.OpenBinaryStream();
ctx.ExecuteQuery();`