原文:
警惕使用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();
}
}
{
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();
}
}