1

test.exeこのコードでファイルをダウンロードしようとしています:

public void DownloadFile()
{
    using(var client = new WebClient())
    {
         client.DownloadFileAsync(new Uri("http://www.acromix.net16.net/download/test.exe"), "test.exe");
    }
}

この単純なコードを使用してデバッグすると、次の出力が得られました。 出力

なぜ0 KBなのかわかりません(328 KBのはずです)。[ /ダウンロード]

どうすればそれを機能させることができますか?

編集: ホスティングサイト(000webhost)は.exeファイルのダウンロードをブロックしています...

4

3 に答える 3

5

問題はDownloadFileAsync、非同期バージョンを使用していることです。ダウンロードがいつ完了したかを知るには、DownloadFileCompletedイベントを購読する必要があります。

いずれかの同期方法を使用します。

public void DownloadFile()
{
    using(var client = new WebClient())
    {
        client.DownloadFile(new Uri("http://www.acromix.net16.net/download/test.exe"), "test.exe");
    }
}

または、新しい async-await アプローチを使用します。

public async Task DownloadFileAsync()
{
    using(var client = new WebClient())
    {
        await client.DownloadFileTaskAsync(new Uri("http://www.acromix.net16.net/download/test.exe"), "test.exe");
    }
}

次に、このメソッドを次のように呼び出します。

await DownloadFileAsync();
于 2015-10-04T09:12:52.853 に答える