我在silverlight应用程序中有一个内存流。我必须将此内存流复制到文件流对象。如果我打电话:
memoryStream.Position = 0;
memoryStream.Seek(0,SeekOrigin.Begin);
它不起作用,我调试应用程序,检查内存流的属性,并且位置仍然指向文件的末尾。有线索吗?
答案 0 :(得分:1)
是否有可能在调试器中触发了另一个属性,并读取了流?
而不是使用调试器,如果您记录(或在消息框上显示)会发生什么:
Log("Position = " + stream.Position);
stream.Position = 0;
Log("Position = " + stream.Position);
两次显示相同的非零数字吗?我发现很难相信MemoryStream
已经破碎了。
顺便说一句,使用MemoryStream
进行复制比使用手动复制所有内容更简单的方法是使用FileStream
作为参数调用WriteTo
。