警惕使用WebClient.DownloadFile(string uri,string filePath)方法

WebClient.DownloadFile(string uri,string filePath)方法用来请求一个url,并将请求内容存到本地的一个文件中。

使用这个方法,如果filePath是一个已经存在的文件,如果DownloadFile的执行web请求的过程中发生了错误,则会删除掉filePath以前的内容。以下是验证代码,和另一种选择方案。

 

class Program
{
    
static void Main(string[] args)
    {
        
const string filePath = @"c:\a.html";
        
const string url = "http://dat0a11.book.hexun.com/chapter-1031-1-7.shtml";
        
try
        {
            
using (WebClient wc = new WebClient())
            {
                
//wc.DownloadFile("http://dat0a11.book.hexun.com/chapter-1031-1-7.shtml", filePath);

                
string html = wc.DownloadString(url);
                
using (StreamWriter writer = new StreamWriter(filePath,false,wc.Encoding))
                {
                    writer.Write(html);
                    writer.Flush();
                }
            }
        }
        
catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        Console.Read();
    }
}
posted @ 2008-08-05 14:22  玉开  阅读(10188)  评论(4编辑  收藏  举报