文件下载的一个类[原创]

原创 2004年09月21日 15:59:00

声明:最近发现不少网站引用本人的文章,竟将作者信息都省略了,请引用本文的网站将作者不要省略作者的信息.

/// <summary>
 /// 下载文件
 /// </summary>
 public class BDDownLoadFile
 {
  private string Url;     //要下载的文件URL地址
  private string SavePath;   //要保存的文件的目录  
  private string errMsg;    //保存错误信息
  private string RegValue = @"
http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?"; 
  private string SaveFile;   //生成的文件

  public BDDownLoadFile(string url,string path)
  {
   Url = url;
   SavePath = path;
   this.SaveFile = GetFileName();
  }

  /// <summary>
  /// 返回错误信息
  /// </summary>
  public string ErrorMessage
  {
   get
   {
    return this.errMsg;
   }
  }

  public string GetSaveFile
  {
   get
   {
    return this.SaveFile;
   }
  }
  public bool DownLoadFile()
  {
   bool result = true;
   if( !CheckUrl(this.Url) )
   {
    this.errMsg = "网址不合法!";
    return false;
   }
   WebClient objWC = new WebClient();
   objWC.Credentials = CredentialCache.DefaultCredentials;
   try
   {       
    byte[] tmpData = objWC.DownloadData(this.Url);
    if(tmpData.Length > 0)
    {
     FileStream objFS = new FileStream(this.SaveFile,FileMode.Create);
     objFS.Write(tmpData,0,(int)tmpData.Length); //向文件写入数据
     objFS.Close();
     this.errMsg = "有数据!";
    }
    else
    {
     result = false;
     this.errMsg = "没有接收到任何数据!";
    }
   }
   catch(System.Net.WebException e)
   {
    this.errMsg += "<li>下载数据时发生错误!" + e.Message;
    return false;
   }
   catch(System.UriFormatException e)
   {
    this.errMsg += "<li>访问的网址无效!" + e.Message;
    return false;
   }
   catch(Exception e)
   {
    this.errMsg = "错误信息:<li>."+e.Message;
    result = false;
   }
   finally
   {
    objWC.Dispose();
   }
   return result;
  }

  /// <summary>
  /// 检查网址是否合法
  /// </summary>
  /// <param name="chkUrl">要检查的网址</param>
  /// <returns></returns>
  private bool CheckUrl(string chkUrl)
  {
   Regex reg = new Regex(RegValue);
   Match match = reg.Match(chkUrl);
   return match.Success;
  }

  /// <summary>
  /// 取得网址是否有文件,如果有文件,则处理,若没有,则返回.html
  /// </summary>
  /// <param name="chkUrl"></param>
  /// <returns></returns>
  private string GetFileType(string chkUrl)
  {
   if(chkUrl.LastIndexOf("/") == (chkUrl.Length-1)) //没有具体文件
    return "html";
   int j = 0;
   for(int i = 0; i < chkUrl.Length; i++)
   {
    if(chkUrl.IndexOf("/",i)>-1)
    {
     i = chkUrl.IndexOf("/",i);
     j++;
    }
   }
   if( j < 3)
    return "html";
   //取得"/"后的字符,然后得出文件类型   
   string end = chkUrl.Substring(chkUrl.LastIndexOf(".")+1);
   switch(end)
   {
    case "asp":
    case "aspx":
    case "jsp":
    case "php":
     return "html";
    default:
     return end;    
   }
  }

  private string GetFileName()
  {
   string fileName = this.SavePath + "//" + System.DateTime.Now.Year.ToString()+System.DateTime.Now.Month.ToString()+System.DateTime.Now.Day.ToString()+System.DateTime.Now.Minute.ToString()+System.DateTime.Now.Second.ToString()+Common.MakeRandom(4).ToString()+"."+GetFileType(this.Url);
   for(;File.Exists(fileName);) 
   {
    fileName = this.SavePath + "//" + System.DateTime.Now.Year.ToString()+System.DateTime.Now.Month.ToString()+System.DateTime.Now.Day.ToString()+System.DateTime.Now.Minute.ToString()+System.DateTime.Now.Second.ToString()+Common.MakeRandom(4).ToString()+"
//"+GetFileType(this.Url);
   }
   return fileName;
  }
 } //BDDownLoadFile end

【伪原创工具】最好的伪原创工具

【伪原创工具】最好的伪原创工具,原创,这个对个人站长来说,几乎不可能,因为没有那么多时间和精力去搞,一般是大站招聘编辑来做这个工作。 靠采集更新网站,早年在火车头采集出现之前还有用,因为在火车头出来...
  • i_like_cpp
  • i_like_cpp
  • 2011年10月10日 18:54
  • 5653

DICK原创:Rendering an IHTMLElement to a Image File Using GDI+

我最新发表在codeproject上的文章:http://www.codeproject.com/vcpp/gdiplus/WebPageSnapshot.asp...
  • RichardSundusky
  • RichardSundusky
  • 2006年12月05日 14:46
  • 2011

手把手教你玩转QQ的原创表情

QQ的原创表情非常的可爱,做得比较精致,深受广大QQ用户的喜爱;但怎么将这些表情保存下来,好让我可以在别的地方用呢? 乖乖牛在线将从不同的视角,为你解析QQ原创表情的存储、互通、保护的机制;熟悉了这些...
  • TragicGuy
  • TragicGuy
  • 2015年10月23日 13:58
  • 1290

【伪原创工具】伪原创工具有用吗?

伪原创工具有用吗?难道伪原创就行不通吗?并不是的,真正的通过人工来操作的伪原创,比如把几篇常见的一样性质内容的文章进行重新组合,这样还是有效果的,不过需要手工编辑修改很多地方才有效果,如果简单的比几篇...
  • i_like_cpp
  • i_like_cpp
  • 2011年11月12日 19:26
  • 1676

百度识图 图片的伪原创 【防图片侵权】

经初步测试,Google的图片识别能力强于百度,但Google在国内的使用不便,被弱化,故以百度为重点进行检验。      先从网上随机下载一“美女”图片,然后,用系统自带的“画图”软件及“美图秀...
  • QQ39921050
  • QQ39921050
  • 2014年11月22日 09:08
  • 1737

当前的最好的伪原创工具技术

当前的最好的伪原创工具技术利用进程的单步模式去计算在系统内核和动态链接库中的指令的执行数量,为了检测被恶意代码额外插入的指令,像rootkits,后门等。对于windows2000这种检测单元的实现,...
  • i_like_cpp
  • i_like_cpp
  • 2012年03月13日 22:10
  • 999

伪原创文章的方法

1.修改标题 标题是搜索引擎读取相关数据的第一步,因此,伪原创内容页的全新标题,搜索引擎而言对这个页面的评价也就高些。具体 的操作技巧有,添加或删减词语词组、换汤不换药(全新的描述方式,意义雷同)、同...
  • zongcaihui
  • zongcaihui
  • 2015年10月12日 15:18
  • 271

seo中伪原创工具是否可用

2012年之前伪原创工具在seo中是非常流行的,主要原因是确实有效果。为什么有效果,需要了解伪原创工具的工作原理及搜索引擎网页去重原理 伪原创工具的工作原理 伪原创采集文章后,将文章随机打...
  • weifangseo
  • weifangseo
  • 2014年08月14日 11:00
  • 633

如何摆脱文章内容的相似度

网站更新了这么久,发现了很多问题也遇到了很多挫折,经历了网站被惩罚的不被收录的过程,虽然只是做网站的内容更新,但是还是要有很多的注意事项,不要以为每天都能为企业增添新鲜的血液是件容易的事,一天两天内容...
  • web635
  • web635
  • 2012年12月04日 15:32
  • 897

通过图像转换软件打造95%原创文章--真的可以告别伪原创(有点扯)

通过图像转换软件打造95%原创文章--真的可以告别伪原创   满大街都在吆喝,SEO优化什么最重要?“内容为王,外链为皇”。。。对,我也是这么认为的,可是能每天坚持写原创的又有几个呢?我相信我这篇文...
  • wuxinliulei
  • wuxinliulei
  • 2013年08月27日 13:09
  • 1033
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件下载的一个类[原创]
举报原因:
原因补充:

(最多只允许输入30个字)