当前位置: 首页 > 编程语言 > C#

内存流不可扩展Share

时间:2023-04-11 11:33:13 C#

内存流不可扩展我正在尝试阅读电子邮件附件,但收到“内存流无法扩展”错误。我研究了一下,大多数解决方案似乎都与动态调整缓冲区大小有关,但我已经这样做了。我是内存流的新手,所以我想知道为什么这是个问题。谢谢。foreach(MailMessageminmessages){byte[]myBuffer=null;if(m.Attachments.Count>0){//myBuffer=newbyte[25*1024];旧方法myBuffer=newbyte[m.Attachments[0].ContentStream.Length];诠释阅读;while((read=m.Attachments[0].ContentStream.Read(myBuffer,0,myBuffer.Length))>0){//执行下一条语句时出错m.Attachments[0].ContentStream.Write(myBuffer,0,阅读);}...更多不相关的代码...如果您在预先分配的字节数组上创建MemoryStream,则无法对其进行扩展(即,大于您在启动时指定的大小)。相反,为什么不使用:返回ms.ToArray();//这给了你你想要的字节数组。您需要替换行m.Attachments[0].ContentStream.Write(myBuffer,0,read);一行写之前创建的MemoryStream,比如上面是C#学习教程:内存流不可用展开分享的所有内容,如果对你有用需要了解更多C#学习教程,希望你会更加注意——foreach(MailMessageminmessages){byte[]myBuffer=null;if(m.Attachments.Count>0){//myBuffer=newbyte[25*1024];旧方法myBuffer=newbyte[m.Attachments[0].ContentStream.Length];诠释阅读;MemoryStreamms=newMemoryStream();while((read=m.Attachments[0].ContentStream.Read(myBuffer,0,myBuffer.Length))>0){ms.Write(myBuffer,0,read);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢