Heim > Artikel > Backend-Entwicklung > C#-Downloadcode mit Fortschrittsbalken (normaler Fortschrittsbalken)
<span style="font-size:14px;"> </span> <pre name="code" class="csharp"> <span style="font-size:14px;"> /// <summary> /// 下载带进度条代码(普通进度条) /// </summary> /// <param name="URL">网址</param> /// <param name="Filename">下载后文件名为</param> /// <param name="Prog">报告进度的处理(第一个参数:总大小,第二个参数:当前进度)</param> /// <returns>True/False是否下载成功</returns> public static bool DownLoadFile(string URL, string Filename, Action<int, int> updateProgress = null) { Stream st = null; Stream so = null; System.Net.HttpWebRequest Myrq =null; System.Net.HttpWebResponse myrp = null; bool flag = false; try { Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL); //从URL地址得到一个WEB请求 myrp = (System.Net.HttpWebResponse)Myrq.GetResponse(); //从WEB请求得到WEB响应 long totalBytes = myrp.ContentLength; //从WEB响应得到总字节数 //更新进度 if (updateProgress != null) { updateProgress((int)totalBytes,0);//从总字节数得到进度条的最大值 } st = myrp.GetResponseStream(); //从WEB请求创建流(读) so = new System.IO.FileStream(Filename, System.IO.FileMode.Create); //创建文件流(写) long totalDownloadedByte = 0; //下载文件大小 byte[] by = new byte[1024]; int osize = st.Read(by, 0, (int)by.Length); //读流 while (osize > 0) { totalDownloadedByte = osize + totalDownloadedByte; //更新文件大小 Application.DoEvents(); so.Write(by, 0, osize); //写流 //更新进度 if (updateProgress != null) { updateProgress((int)totalBytes, (int)totalDownloadedByte);//更新进度条 } osize = st.Read(by, 0, (int)by.Length); //读流 } //更新进度 if (updateProgress != null) { updateProgress((int)totalBytes, (int)totalBytes); } flag= true; } catch(Exception ) { flag = false; throw; //return false; } finally { if (Myrq != null) { Myrq.Abort();//销毁关闭连接 } if (myrp != null) { myrp.Close();//销毁关闭响应 } if (so != null) { so.Close(); //关闭流 } if (st != null) { st.Close(); //关闭流 } } return flag; }</span>
<br>
<br>
Aufrufmethode eins:
<br>
<span style="font-size:14px;"> if (FileUpDownload.DownLoadFile("下载文件的网址", "文件名", new Action<int, int>( (int Maximum, int Value) => { //更新进度条 progressBar1.Maximum = Maximum; progressBar1.Value = Value; }) )) { //下载文件后的处理 }</span>
<br>
Das Aktionsschreiben ohne Übergabe von Parametern:
((Form)form).BeginInvoke(new Action(() => { //处理 })
<br>
Aufrufmethode zwei:
<br>
<br>
<span style="font-size:14px;"> </span><pre name="code" class="csharp"><span style="font-size:14px;"> if (FileUpDownload.DownLoadFile("下载文件的网址", "文件名", UpdateProgressBar)) { //下载文件后的处理 } ////更新进度条 private void UpdateProgressBar(int Maximum, int Value) { progressBar1.Maximum = Maximum; progressBar1.Value = Value; }</span>
<br>
<br>
<br>
Kleiner Hinweis: progressBar1 im aufrufenden Code ist Microsofts Fortschrittsbalkensteuerung <br><br>
<br>
URL-Beispiel: http://www.php.cn/
<br>
Wenn Sie aufladen möchten Windows Wenn Sie Dateien auf den Server herunterladen, müssen Sie diese in iis konfigurieren. Die spezifischen Konfigurationsschritte sind wie folgt:
1 Suchen Sie das entsprechende Verzeichnis Datei, die Sie herunterladen möchten:
<br>
2. Suchen Sie rechts nach „Verzeichnis durchsuchen“:
<br>
3. Klicken Sie mit der rechten Maustaste auf „Verzeichnis durchsuchen“ und klicken Sie auf: Öffnen Sie diese Funktion
<br>
4. Sie können das Bild unten sehen und aktivieren:
<br>
Das Obige ist der Inhalt des C#-Downloadcodes mit Fortschrittsbalken (normaler Fortschrittsbalken). Weitere verwandte Inhalte finden Sie hier zur chinesischen PHP-Website (www.php.cn)! <br>
<br>