我已将我们的项目更新到 .Net 7,这要求我将 Microsoft Graph API 版本更新到版本 5.38。在大多数情况下,除了从 SharePoint 获取文件之外,一切都运行良好。我正在使用以下方法来获取文件内容:
await _graphServiceClient.Drives[docFolderId].Items[file.Id].Content.GetAsync();
这似乎确实获取了文件内容,但是,当您查看对象的属性时,您会发现许多属性失败,例如 Length 的基本属性。我得到的错误如下:
((System.Net.Http.HttpBaseStream)fileContent).Length = '((System.Net.Http.HttpBaseStream)fileContent).Length' threw an exception of type 'System.NotSupportedException'
这对我来说没有意义,我忍不住认为这是一个错误。但是,我想询问社区,看看是否有其他人遇到过这种情况并找到解决方法?
方法返回的流
var fileContent = await _graphServiceClient.Drives[docFolderId].Items[file.Id].Content.GetAsync();
默认不缓冲,所以无法读取流的长度。
尝试将流复制到内存流中并读取该流的长度
using var ms = new MemoryStream();
await fileContent.CopyToAsync(ms);
var length = ms.Length;