警惕使用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-04 18:41:09

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

C#中,String和string的区别

区别 C#中,字符串的声明,你使用String还是string?String? string? 只有一个大小写的问题,你习惯用哪个?知道具体的区别吗?我是习惯了用string,区别也是最近才找到了权威的根据,'CLR via C#'.其实,String是CLR的类型名称(也算是keyword),而string是C#中的keyword.在C#的编译时,默认会增加几行代码,看了你就会明白string和String的区别了!using string = System.String; using sby

C++: 把文本文件(txt)的所有内容读入字符串(string), 最高效的方法

代码: /* * main.cpp * * Created on: 2014年6月17日 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <iostream> #include <fstream> #include <string> #include <cerrno> std::string get_file_contents(const char *filename) { std::ifstre

C++中string和string.h的作用和区别

#include < string .h > void main() { string aaa = " abcsd d " ; printf( " looking for abc from abcdecd %s\n " , (strcmp(aaa, " abc " )) ? " Found " : " Not Found " ); } 不能正确执行,提示说是string 类型没有定义 而下面:

Linux使用svn时报错Can&#039;t convert string from的解决方法

  Linux使用svn的时候,出现了错误提示,即can't convert string from 'UTF-8' to native encoding,这主要是编码格式所导致的问题,下面小编就给大家介绍下解决该问题的方法. 在linux中,svn co . svn up或者svnc cleanup时,如果有中文文件名的文件报下面的错: svn: Can't convert string from 'UTF-8' to native encoding: svn: src/main/webapp

java 中 String.indexOf(string) 就是找不到,明明存在在文件中 。求助?

问题描述 java 中 String.indexOf(string) 就是找不到,明明存在在文件中 .求助? 我从网站或文件中读取一个文档,存储在一个String str中:比如此时我要查找一个 子字符串 substr 用 indexOf方法返回的为-1 但是在str中确实存在substr 在记事本或网页中可以查找到.把str 输出到console中也是存在 substr的求帮忙分析下原因?解决方法?谢谢 解决方案 大小写.全角半角.隐藏的空格或者特殊字符等细节检查下,还有,访问的是不是你期待的

编写高质量代码改善java程序的151个建议——[52-57]String !about String How to use them?

Suggestion:Use the String direct value for the assignment Do u knw the String Object ? If u do some projects,u can see the String is used usually. A object is created by the key word : new.Therefore , we can create a String Obejct by :"  String str3

源码-JDK1.7中java.lang.String类的toCharArray方法注释:不能用Arrays.copyOf实现?求解惑

问题描述 JDK1.7中java.lang.String类的toCharArray方法注释:不能用Arrays.copyOf实现?求解惑 JDK1.7重新设计了String类,各个String对象各自维护一个属于自身的char数组,下面是该类中的toCharArray方法的实现源码:public char[] toCharArray() { // Cannot use Arrays.copyOf because of class initialization order issues char

C#,int转成string,string转成int

1,int转成string用toString 或者Convert.toString()如下  例如:int varInt = 1; string varString = Convert.ToString(varInt); string varString2 = varInt.ToString(); 2,string转成int如果确定字符串中是可以转成数字的字符,可以用int.Parse(string s),该语句返回的是转换得到的int值;如果不能确定字符串是否可以转成数字,可以用int.Try

hibernate的Criteria查询有没有可以把日期转换成string进行比较的方法?

问题描述 hibernate的Criteria查询有没有可以把日期转换成string进行比较的方法? 我要实现类似to__char(date,'yyyy-mm-dd') like '2016-04%'的比较,但是不知道DetachedCriteria中应该怎么写才能实现?