try { WebRequest myre=WebRequest.Create(URLAddress); }
catch(WebException exp){
MessageBox.Show(exp.Message,"Error");
}
这是一个try-catch语句,try块完成向URI的请求,catch块则捕捉可能的异常并显示异常信息。其中的URLAddress为被请求的网络主机名。 在请求成功后,我们就可以运用WebClient类的实例对象中的DownloadFile()方法实现文件的下载了。其函数原型如下: public void DownloadFile( string address, string fileName); 其中,参数address为从中下载数据的 URI,fileName为要接收数据的本地文件的名称。 之后我们用OpenRead()方法来打开一个可读的流,该流完成从具有指定URI的资源下载数据的功能。其函数原型如下: public Stream OpenRead(string address); 其中,参数address同上。 最后就是新建一个StreamReader对象从中读取文件的数据,并运用一个while循环体不断读取数据,只到读完所有的数据。
还有在使用以上方法时,你将可能需要处理以下几种异常:
● WebException:下载数据时发生错误。
● UriFormatException:通过组合 BaseAddress、address 和 QueryString 所构成的 URI 无效。
这部分的代码如下:(client为WebClient对象,在本类的开头处声明即可)
复制代码 代码如下:
statusBar.Text = "开始下载文件...";
client.DownloadFile(URLAddress,fileName);
Stream str = client.OpenRead(URLAddress);
StreamReader reader = new StreamReader(str);
byte[] mbyte = new byte[100000];
int allmybyte = (int)mbyte.Length;
int startmbyte = 0;
statusBar.Text = "正在接收数据...";
while(allmybyte>0){
int m = str.Read(mbyte,startmbyte,allmybyte);
if(m==0)
break;
startmbyte+=m;
allmybyte-=m;
}
完成了文件数据的读取工作后,我们运用FileStream类的实例对象将这些数据写入本地文件中:
FileStream fstr = new FileStream(Path,FileMode.OpenOrCreate,FileAccess.Write); fstr.Write(mbyte,0,startmbyte);
*/
您可能感兴趣的文章: