dポイントプレゼントキャンペーン実施中!

最近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
↑特に設定いじってなし

A 回答 (1件)

質問文のコードだけだと、完了イベント待ちがないような。



ideoneやcodepadなどを使って、実際に試したプログラムを完全なかたち提示したほうが、回答が得られやすいと思います。

http://ideone.com/
http://codepad.org/

参考URL:http://msdn.microsoft.com/library/system.net.web …
    • good
    • 0
この回答へのお礼

解決しました。

ご指摘の通り、完了待ちをしていなかったため、
DL完了前にプログラムが終了していたことが原因でした。

今後またプログラムに関する質問をすることがあれば、
ご指摘いただいた点に留意したいと思います。

ありがとうございました。

お礼日時:2013/07/07 18:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!