我正在尝试将大型视频文件(250mb)加载到我的浏览器中。该文件很大,所以我试图一次加载一定数量的字节,但似乎问题出在其他地方,因为我尝试更改bufferSize而没有结果。
MemoryStream ms = new MemoryStream();
using (FileStream fs = File.Open(Server.MapPath(path), FileMode.Open))
{
fs.CopyTo(ms, 10000);
}
CopyTo方法抛出异常。
提前致谢。
答案 0 :(得分:3)
Steam.CopyTo不链接流以让他们按需复制数据,但会立即复制所有数据。
内存流旨在永久保存内存中的所有数据 - 即使临时副本缓冲区很小,这对于大文件也不总是一个好主意。
您可以尝试使用文件流本身,或者如果这会导致性能问题,BufferedStream可能会帮助您 - 只保留文件的某些部分在内存中。
答案 1 :(得分:1)
所以,我学到了宝贵的一课。在尝试加载较大的文件时,将应用程序平台目标设置为64位而不是32位。对于Visual Studio在工具>选项>项目和解决方案>中启动的IIS Express也是如此。网络项目。这解决了我的问题,也许它会帮助别人。我感谢大家的评论!