• λ我爱Aspx >> Asp.Net >> 用Visual C#实现文件下载
  • 用Visual C#实现文件下载

  • :未知  Դ:internet  :2007-5-20 16:43:54  ؼ:c#
  • byte[] mbyte = new byte[100000];

    int allmybyte = (int)mbyte.Length;

    int startmbyte = 0;

    statusBar.Text = "正在接收数据...";

    while(allmybyte>0)

    {

    int m = str.Read(mbyte,startmbyte,allmybyte);

    if(m==0)

    break;

    startmbyte+=m;

    allmybyte-=m;

    }

    完成了文件数据的读取工作后,我们运用FileStream类的实例对象将这些数据写入本地文件中:

    FileStream fstr = new FileStream(Path,FileMode.OpenOrCreate,FileAccess.Write);

    fstr.Write(mbyte,0,startmbyte);

    这样,程序主体部分的代码已经完成了,不过要完成全部程序还需要一些工作。由于在程序接收网络文件数据的时候运用到了while循环体,这样会很占程序资源,表现的形式就是主窗体不能自由移动。为了解决这个问题,我们在程序中用到了多线程机制。我们在响应按钮的事件中新建一个线程,该线程就是用来实现网络文件下载功能的。如此,文件下载的线程和程序主线程并存,共享进程资源,使得程序顺畅运行。这样,我们在按钮控件的消息响应函数里添加如下代码:

    Thread th = new Thread(new ThreadStart(StartDownload));

    th.Start();

    该线程的实现函数就是StartDownload(),而上面介绍的那些代码就是这个函数的主体部分。

    最后,因为程序中运用到了WebRequest、WebClient、FileStream、Thread等类,所以最重要的就是在程序的开始处添加如下名字空间:

    Ҷƪл˵?
  • һƪ用C#读取图片的EXIF信息的方法
    һƪ使用C#调用外部Ping命令获取网络连接情况