关于文件流读取的问题,提示内存不足

销魂的西瓜 2010-11-19 01:16:12
代码如下:
[code=C#]string sPath = openFileDialog1.FileName;
FileInfo fileinfo = new FileInfo(sPath);
System.IO.FileStream fs = System.IO.File.OpenRead(sPath);
byte[] bytContent = new byte[10485760];
long fslength = fileinfo.Length;

int blockcount = (fslength / 10485760).ToInt32();
int tempcount = 0;
if (fslength % 10485760 != 0)
{
tempcount = blockcount + 1;
}
if (tempcount != 0)
{
string base64String = "";
for (int i = 0; i < blockcount; i++)
{
fs.Seek(10485760, SeekOrigin.Current);
fs.Read(bytContent, 0, 10485760);
base64String = Convert.ToBase64String(bytContent);
CallJavaScript(base64String + "|" + openFileDialog1.SafeFileName + "|" + tempcount + "|" + (i + 1));
}
fs.Seek(10485760, SeekOrigin.Current);
fs.Read(bytContent, 0, (fslength % 10485760).ToInt32());
base64String = Convert.ToBase64String(bytContent);
CallJavaScript(base64String + "|" + openFileDialog1.SafeFileName + "|" + tempcount + "|" + tempcount);
}
else
{
for (int i = 0; i < blockcount; i++)
{
fs.Read(bytContent, 0, fslength.ToInt32());
string base64String = Convert.ToBase64String(bytContent);
CallJavaScript(base64String + "|" + openFileDialog1.SafeFileName + "|" + blockcount + "|" + (i + 1));
}
}
fs.Close();



这样写提示内存不足。。。。[/code]
...全文
296 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
销魂的西瓜 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyazhe 的回复:]
引用 2 楼 yunfei3115415 的回复:
引用 1 楼 wuyazhe 的回复:
哪里异常的?
CallJavaScript?

应该不是CallJavaScript,我估计是文件流占内存过多、、、

CallJavaScript是ActiveX调用JS的一个方法,没问题的 我分块传到第9块的时候出问题了

你不能确定哪行出错的么?
调试不到问题?
CallJava……
[/Quote]

ActiveX不能调试的吧?而且我传个30M以下的就不错。。。。奇怪了
兔子-顾问 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yunfei3115415 的回复:]
引用 1 楼 wuyazhe 的回复:
哪里异常的?
CallJavaScript?

应该不是CallJavaScript,我估计是文件流占内存过多、、、

CallJavaScript是ActiveX调用JS的一个方法,没问题的 我分块传到第9块的时候出问题了
[/Quote]
你不能确定哪行出错的么?
调试不到问题?
CallJavaScript或Base64转换都可能是报错的地方。
萤火架构 2010-11-19
  • 打赏
  • 举报
回复
难道是占用了很多内存
销魂的西瓜 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]
哪里异常的?
CallJavaScript?
[/Quote]
应该不是CallJavaScript,我估计是文件流占内存过多、、、

CallJavaScript是ActiveX调用JS的一个方法,没问题的 我分块传到第9块的时候出问题了
兔子-顾问 2010-11-19
  • 打赏
  • 举报
回复
哪里异常的?
CallJavaScript?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧