黑马程序员技术交流社区

标题: 做一个下载文件的程序 发现了两种可以下载文件的方法,请高手指点下两种的区别 [打印本页]

作者: 彭张铨    时间: 2012-9-18 22:49
标题: 做一个下载文件的程序 发现了两种可以下载文件的方法,请高手指点下两种的区别
  public string GetF(string path1,string path2)  
  {
   try
   {
   WebClient wc = new WebClient();
   wc.DownloadFile(@"E:\MyWeb\MyWeb2\Folder\" + path1, path2);
     
  return "下载成功。。。";
   }
   catch  
  {
   return "下载失败。。。";
   }
public string GetFF(string path1, string path2)
    {
        try
        {
            WebRequest wr = WebRequest.Create(@"E:\MyWeb\MyWeb2\Folder\"+path1);
            WebResponse pos = wr.GetResponse();
            long totlebyte = pos.ContentLength;
            Stream st = pos.GetResponseStream();
            FileStream fs = new FileStream(path2,FileMode.OpenOrCreate,FileAccess.Write);
            BinaryReader br = new BinaryReader(st);
            StreamReader reader = new StreamReader(st);
            byte[] bt = br.ReadBytes((int)st.Length);
            fs.Write(bt,0,bt.Length);
            st.Close();
            fs.Close();  
            return "下载成功。。。";
        }
        catch
        {
            return "下载失败。。。";
        }

    }
   
作者: 许庭洲    时间: 2012-9-19 08:23
1. GetF方法采用WebClient 方式使用基于事件的异步编程模型,在HTTP响应返回时引发的WebClient回调是在UI线程中调用的,因此可用于更新UI元素的属性,例如把 HTTP响应中的数据绑定到UI的指定控件上进行显示。
2. GetFF方法是采用HttpWebRequest方式,它是基于后台进程运行的,回调不是UI线程, 可以获取对应HTTP请求的响应,获取响应流,然后对接响应流(以"GBK"字符集);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2