お世話になっております
C#フォームを使用してボタンを押したらzipフォルダをダウンロードしたいのですが
うまく機能しません。。
URLからのダウンロードになります
1つだけのファイルの場合はうまくいきます
zipとフォルダですとうまくダウンロードができません..
参考サイト
https://www.youtube.com/watch?v=KxiHM3pQbGQ&t=147s
ちなみになのですが複数のファイルを1つのファイルにまとめる方法などはあるのでしょうか
やはりそちらの方が良いのでしょうか
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10using System.Net; 11using System.Threading; 12 13 14 15 16namespace WindowsFormsApp1 17{ 18 public partial class Form1 : Form 19 { 20 public Form1() 21 { 22 InitializeComponent(); 23 } 24 25 26 27 WebClient client; 28 29 30 31 32 33 34 35 36 private void btnDounload_Click(object sender, EventArgs e) 37 { 38 39 string url = txtUrl.Text; 40 if (!string.IsNullOrEmpty(url)) 41 { 42 Thread thread = new Thread(() => 43 { 44 Uri uri = new Uri(url); 45 string fileName = System.IO.Path.GetFileName(uri.AbsolutePath); 46 client.DownloadFileAsync(uri, Application.StartupPath + "/" + fileName); 47 }); 48 49 thread.Start(); 50 } 51 } 52 53 54 55 56 private void Form1_Load(object sender, EventArgs e) 57 { 58 client = new WebClient(); 59 client.DownloadProgressChanged += Client_DownloadProgressChanged; 60 client.DownloadFileCompleted += Client_DownloadFileCompleted; 61 } 62 63 64 65 private void Client_DownloadFileCompleted(object sender ,AsyncCompletedEventArgs e) 66 { 67 MessageBox.Show("Download complete !", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); 68 69 } 70 71 72 73 74 private void Client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) 75 { 76 Invoke(new MethodInvoker(delegate () 77 { 78 progressBar.Minimum = 0; 79 double receive = double.Parse(e.BytesReceived.ToString()); 80 double total = double.Parse(e.TotalBytesToReceive.ToString()); 81 double percentage = receive / total * 100; 82 lblStatus.Text = $"Downloded {string.Format("{0:0.##}", percentage)}%"; 83 progressBar.Value = int.Parse(Math.Truncate(percentage).ToString()); 84 85 })); 86 87 } 88 89 90 } 91 92 } 93
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/02 11:08
2021/02/02 11:18
2021/02/02 12:37
2021/02/02 15:00