日期:2014-05-20  浏览次数:20824 次

文件数据写入错误
下载其他文件没有问题,但是下1.3M的ppt(经常下的文件都是50k左右)的时候出现很奇怪的问题。
用UltraEdit-32   打开对比文件发现仅缺少几个数据段
请高手指教,是不是我的下载代码不能下载大文件
 
private   void   DownFile(string   netpath,string   filename,string   filetype)
{
//构造Web请求
HttpWebRequest   request   =   (HttpWebRequest)WebRequest.Create(netpath);
//发送请求,获取响应
HttpWebResponse   response   =   (HttpWebResponse)request.GetResponse();
//使用到的读写流
Stream   inStream   =   null;
FileStream   fileStream   =   null;
try
{
//获得流
inStream   =   response.GetResponseStream();
//获得文件长度
long   fileSizeInBytes   =   response.ContentLength;
//创建文件流对象
//MessageBox.Show(Application.StartupPath+@ "\ "+filename+ ".jw ");
fileStream   =   new   FileStream(Application.StartupPath+@ "\ "+filename+ ".jw ",   FileMode.OpenOrCreate,   FileAccess.Write);
//读取数据缓冲区长度和缓冲区
int   length   =   1024;
byte[]   buffer   =   new   byte[1025];
//记录读取的长度
int   bytesread   =   0;
//从网络读取数据
while((bytesread   =   inStream.Read(buffer,   0,   length))   >   0)
{
//把数据写入文件
fileStream.Write(buffer,   0,   bytesread);
}
//MessageBox.Show( "写入结束 ");
}
catch(Exception   fe)
{
MessageBox.Show( "文件创建/写入错误: "+fe.Message, "提示信息 ",MessageBoxButtons.OK,MessageBoxIcon.Information);  

}
finally
{
//关闭流
if(inStream   !=   null)
{
inStream.Close();
}
if(fileStream   !=   null)
{
fileStream.Close();
}
}
}


------解决方案--------------------
int length = 1024;
byte[] buffer = new byte[1025];

1.3M当然放不下了