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

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

}

}

时间: 2024-10-24 20:22:41

警惕使用WebClient.DownloadFile(string uri,string filePath)方法的相关文章

WebClient DownloadFile 用法

using (WebClient myWebClient = new WebClient()) { try { myWebClient.DownloadFile(new Uri(href), System.IO.Path.Combine(globePath, System.IO.Path.GetRandomFileName() + System.IO.Path.GetExtension(href))); } catch (Exception ex) { } }

ArrayList、string、string[]之间的转换

1.ArrarList 转换为 string[] : ArrayList list = new ArrayList(); list.Add("aaa"); list.Add("bbb"); string[] arrString = (string[])list.ToArray(typeof( string)) ; 2.string[] 转换为 ArrarList : ArrayList list = new ArrayList(new string[] { &quo

C#中string和String的区别

从位置上讲: 1.大写String是.NET Framework里的String,小写string是C#语言中的string 2.如果删掉using System;,就不能使用大写的String,System是.NET Framework类库中的一个函数名 从性质上讲: 1.string是关键字,String是类,string不能作为类.结构.枚举.字段.变量.方法.属性的名称 2.用C#编写代码尽量使用小写string,比较符合规范.如果在追求效率的情况下可以使用大写的String,因为最终通

String、String.valueOf、toString 它们三者的区别总结

今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下吧.用了这么长时间,才发现有这些的不同,也是挺惭愧的. 先说他们三的作用是什么吧:没什么特别的作用,就是让我们得到的对象或参数类型,按照要求转成字符串的形式. String:毫无疑问,这种就是强转形式,简单方便,效率高.java程序员可能看到效率高或许有些激动,但是它有他的不好,那就是局限性.在ja

(String)将一个String里面的单词反转

e.g.  i love java    return   java love i public static String reverseStr(String str) { String[] strs=str.split(" "); StringBuilder sb=new StringBuilder(); for(int i=strs.length-1;i>=0;i--) { sb.append(strs[i]+" "); } return sb.toSt

关于JAVA的String类的一些方法

一.得到字符串对象的有关信息 1.通过调用length()方法得到String的长度. String str=”This is a String”; int len =str.length(); 2.StringBuffer类的capacity()方法与String类的 length()的方法类似,但是她测试是分配给StringBuffer的内存空间的大小,而不是当前被使用了的内存空间. 3.如果想确定字符串中指定字符或子字符串在给定字符串的位置,可以用 indexOf()和lastIndexO

C#List<string>和string[]之间的相互转换

 一.LIST概述 所属命名空间:System.Collections.Generic      public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable List<T>类是 ArrayList 类的泛型等效类.该类使用大小可按需动态增加的数组实现 IList<T> 泛型接口.  泛型的好处: 它为使

Lua的string和string库总结

Lua有7种数据类型,分别是nil.boolean.number.string.table.function.userdata.这里我总结一下Lua的string类型和string库,复习一下,以便加深记忆. 个人认为string是Lua编程使用数据结构的时候,重要性仅次于table的类型.十分重要! 一.string基础. Lua并没有字符类型,Lua的string类型表示字符序列.所以,长度为1的string就表示了单个字符.Lua的字符类型有这些特征: 1.string字符序列中的字符采用

【java】String类的基本方法

Java的String类基本方法 一.构造函数 函数 返回值 作用 String(byte[] bytes) String 通过byte数组构造字符串对象 String(char[] chars) String 通过char数组构造字符串对象 String(String string) String 拷贝一个值为string的字符串对象 String(StringBuffer buffer) String 通过StringBuffer构造字符串对象 二.String类的基本方法 函数 返回值 作