※ ChatGPTを利用し、要約された質問です(原文:C#でDownloadFileAsync)
C#で非同期のダウンロードに失敗する問題の解決方法
このQ&Aのポイント
C#でファイルのWEB上からのダウンロードを行う際、非同期のメソッドを使用するとダウンロードに失敗することがあります。ファイルは作成されるものの、サイズが0KBの空のファイルとなります。この問題の解決方法についてまとめました。
C#のプログラミングを勉強中の方がWEB上からのファイルダウンロードに関する問題に直面した場合、非同期のメソッドを使用するとファイルが正しくダウンロードされないことがあります。本記事では、その原因と解決方法について詳しく解説します。
C#でのファイルのWEB上からのダウンロードにおいて、非同期のメソッドを使用するとダウンロードがうまくいかない場合があります。ファイルは作成されますが、サイズが0KBの空の状態となります。この問題の解決方法についてまとめましたので、参考にしてください。
最近C#のプログラミングの勉強を始めました。
ファイルをWEB上からダウンロードする方法についての質問です。
以下のコードを使って、HTMLファイルをDLすることは問題なくできました。
System.Net.WebClient wc = new System.Net.WebClient();
Uri url = new Uri("http://okwave.jp/");
string filename = "tempfile.html";
wc.DownloadFile(url, filename);
しかし、以下のように非同期のメソッドにした場合、うまくファイルがDLされません。
System.Net.WebClient wc = new System.Net.WebClient();
Uri url = new Uri("http://okwave.jp/");
string filename = "tempfile.html";
wc.DownloadFileAsync(url, filename);
なおDLされないというのは、コンパイルも通るし例外も出ないし
tempfile.htmlというファイル自体は作成されるのですが、
サイズが0KBの空っぽのものになってしまうという意味です。
後半のソースも、どこかのサイトからほぼコピペしてきたものなのですが、
何か重大な見逃しをしているのか、設定が悪いのか、
いろいろネットをあたってもそれらしい解決策は得られませんでした。
.Netにあまりなじみがないのでくだらないミスをしているのかもしれませんが、
行き詰ってしまいましたので皆様のお知恵をお借りできればと思います。
よろしくお願いします。
環境
Win8 64bit
Visual Studio Express 2012 for Win Desktop
↑特に設定いじってなし
お礼
解決しました。 ご指摘の通り、完了待ちをしていなかったため、 DL完了前にプログラムが終了していたことが原因でした。 今後またプログラムに関する質問をすることがあれば、 ご指摘いただいた点に留意したいと思います。 ありがとうございました。