c# – 内存流不可扩展
发布时间:2020-12-15 06:46:48 所属栏目:百科 来源:网络整理
导读:我正在尝试阅读一个电子邮件附件,我正在获得一个“内存流不可扩展”的错误.我研究了这一些,大多数解决方案似乎与确定缓冲区大小有关,但我已经在做.我对内存流不是很有经验,所以我想知道为什么这是一个问题.谢谢. foreach (MailMessage m in messages){ byte[
我正在尝试阅读一个电子邮件附件,我正在获得一个“内存流不可扩展”的错误.我研究了这一些,大多数解决方案似乎与确定缓冲区大小有关,但我已经在做.我对内存流不是很有经验,所以我想知道为什么这是一个问题.谢谢.
foreach (MailMessage m in messages) { byte[] myBuffer = null; if (m.Attachments.Count > 0) { //myBuffer = new byte[25 * 1024]; old way myBuffer = new byte[m.Attachments[0].ContentStream.Length]; int read; while ((read = m.Attachments[0].ContentStream.Read(myBuffer,myBuffer.Length)) > 0) { // error occurs on executing next statement m.Attachments[0].ContentStream.Write(myBuffer,read); } ... more unrelated code ... 解决方法
如果您通过预先分配的字节数组创建了一个MemoryStream,则它不能展开(即,比您在启动时指定的大小更长).相反,为什么不使用:
using (var ms = new MemoryStream()) { // Do your thing,for example: m.Attachments[0].ContentStream.CopyTo(ms); return ms.ToArray(); // This gives you the byte array you want. } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby – 是否可以使用机器人打开浏览器,手动操作页面,然后继
- 第14章《观察者模式》
- ruby-on-rails-3 – Rails资产管道 – image_path帮助程序仅
- 【Quick-COCOS2D-X 3.3 如何绑定自定义类至Lua之二】新建项
- c# – 使用CSVHelper映射IEnumerable属性
- c# – 如何挂钩ASP .NET编译过程?
- 我可以在SQLite中使用负tinyint吗?
- c – STL const_iterator cast – 编译器差异
- Swift Modules for React Native
- logback logback.xml常用配置详解(一)<configuration> a