国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

用Visual C#實現(xiàn)文件下載

2024-07-21 02:29:30
字體:
供稿:網(wǎng)友

using system;
using system.drawing;
using system.collections;
using system.componentmodel;
using system.windows.forms;
using system.data;
using system.net;
using system.io;
using system.threading;
  
namespace mygetcar
{
 ///
 /// form1 的摘要說明。
 ///
 public class form1 : system.windows.forms.form
 {
  private system.windows.forms.label label1;
  private system.windows.forms.label label2;
  private system.windows.forms.textbox srcaddress;
  private system.windows.forms.textbox taraddress;
  private system.windows.forms.statusbar statusbar;
  private system.windows.forms.button start;
  
  private webclient client = new webclient();
  
   
  ///
  /// 必需的設(shè)計器變量。
  ///
  private system.componentmodel.container components = null;
  
  public form1()
  {
   //
   // windows 窗體設(shè)計器支持所必需的
   //
   initializecomponent();
  
   //
   // todo: 在 initializecomponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼
   //
  }
  
  ///
  /// 清理所有正在使用的資源。
  ///
  protected override void dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null)
    {
     components.dispose();
    }
   }
   base.dispose( disposing );
  }
  
  #region windows form designer generated code
  ///
  /// 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改
  /// 此方法的內(nèi)容。
  ///
  private void initializecomponent()
  {
   this.label1 = new system.windows.forms.label();
   this.label2 = new system.windows.forms.label();
   this.srcaddress = new system.windows.forms.textbox();
   this.taraddress = new system.windows.forms.textbox();
   this.statusbar = new system.windows.forms.statusbar();
   this.start = new system.windows.forms.button();
   this.button1 = new system.windows.forms.button();
   this.suspendlayout();
   //
   // label1
   //
   this.label1.location = new system.drawing.point(8, 32);
   this.label1.name = "label1";
   this.label1.size = new system.drawing.size(72, 23);
   this.label1.tabindex = 0;
   this.label1.text = "文件地址:";
   this.label1.textalign = system.drawing.contentalignment.middleright;
   //
   // label2
   //
   this.label2.location = new system.drawing.point(8, 72);
   this.label2.name = "label2";
   this.label2.size = new system.drawing.size(72, 23);
   this.label2.tabindex = 1;
   this.label2.text = "另存到:";
   this.label2.textalign = system.drawing.contentalignment.middleright;
   //
   // srcaddress
   //
   this.srcaddress.location = new system.drawing.point(80, 32);
   this.srcaddress.name = "srcaddress";
   this.srcaddress.size = new system.drawing.size(216, 21);
   this.srcaddress.tabindex = 2;
   this.srcaddress.text = "";
   //
   // taraddress
   //
   this.taraddress.location = new system.drawing.point(80, 72);
   this.taraddress.name = "taraddress";
   this.taraddress.size = new system.drawing.size(216, 21);
   this.taraddress.tabindex = 3;
   this.taraddress.text = "";
   //
   // statusbar
   //
   this.statusbar.location = new system.drawing.point(0, 151);
   this.statusbar.name = "statusbar";
   this.statusbar.size = new system.drawing.size(312, 22);
   this.statusbar.tabindex = 4;
   //
   // start
   //
   this.start.flatstyle = system.windows.forms.flatstyle.flat;
   this.start.location = new system.drawing.point(216, 112);
   this.start.name = "start";
   this.start.size = new system.drawing.size(75, 24);
   this.start.tabindex = 5;
   this.start.text = "開始下載";
   this.start.click += new system.eventhandler(this.start_click);
   
   //
   // form1
   //
   this.autoscalebasesize = new system.drawing.size(6, 14);
   this.clientsize = new system.drawing.size(312, 173);
   this.controls.add(this.button1);
   this.controls.add(this.start);
   this.controls.add(this.statusbar);
   this.controls.add(this.taraddress);
   this.controls.add(this.srcaddress);
   this.controls.add(this.label2);
   this.controls.add(this.label1);
   this.maximizebox = false;
   this.name = "form1";
   this.text = "文件下載器";
   this.resumelayout(false);

  }
  #endregion
  
  ///
  /// 應(yīng)用程序的主入口點。
  ///
  [stathread]
  static void main()
  {
   application.run(new form1());
  }
  
  private void startdownload()
  {
   start.enabled = false;
   string url = srcaddress.text;
   int n = url.lastindexof("?");
   string urladdress = url;
   //string urladdress = url.substring(0,n);
   string filename = url.substring(n+1,url.length-n-1);
   string dir = taraddress.text;
   string path = dir+filename;
  
   try
   {
    webrequest myre=webrequest.create(urladdress);
   }
   catch(webexception exp)
   {
    messagebox.show(exp.message,"error");
   }
  
   try
   {
    statusbar.text = "開始下載文件...";
    client.downloadfile(urladdress,filename);
    stream str = client.openread(urladdress);
    //streamreader reader = new streamreader(str); ,這句沒有什么必要!個人認為
    byte[] mbyte = new byte[100000];
    int allmybyte = (int)mbyte.length;
    int startmbyte = 0;
    statusbar.text = "正在接收數(shù)據(jù)...";
    //寫入到byte數(shù)組中,起緩沖作用
    while(allmybyte>0)
    {
     int m = str.read(mbyte,startmbyte,allmybyte);
     if(m==0)
      break;
  
     startmbyte+=m;
     allmybyte-=m;
    }
  
    filestream fstr = new filestream(path,filemode.openorcreate,fileaccess.write);
    fstr.write(mbyte,0,startmbyte);
    str.close();
    fstr.close();
  
    statusbar.text = "下載完畢!";
   }
   catch(webexception exp)
   {
    messagebox.show(exp.message,"error");
    statusbar.text = "";
   }
  
   start.enabled = true;
  }
  
  
  private void start_click(object sender, system.eventargs e)
  {
   thread th = new thread(new threadstart(startdownload));
   th.start();
  }
 }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 榆社县| 博兴县| 酒泉市| 南和县| 尉氏县| 阜新市| 珠海市| 寿光市| 东丰县| 赫章县| 安福县| 温泉县| 石首市| 甘谷县| 德化县| 喀什市| 尖扎县| 阜平县| 吉木萨尔县| 滨州市| 循化| 巴里| 怀化市| 耒阳市| 安陆市| 扎赉特旗| 宿迁市| 利津县| 鄯善县| 株洲市| 大城县| 济阳县| 眉山市| 怀柔区| 滨海县| 左云县| 玛沁县| 吉安县| 华亭县| 松原市| 普安县|