0

独自のダウンロード マネージャーを作成しようとしています。ダウンロード マネージャーにリンクが追加されたら、Web クライアントを使用してサーバーから情報を取得します。そのようです

WebClient webClient = new WebClient();
webClient.OpenRead(link);
string filename = webClient.ResponseHeaders["Content-Disposition"];

その後、 DownloadFile を使用してファイルをダウンロードします

FileInfo fileInfo = new FileInfo(path);
if (!fileInfo.Exists)
{
    webClient.DownloadFile(link, path);
}

こうすると。WebException タイムアウトが発生します。ただし、webClient.ResponseHeaders 部分を削除すると。タイムアウト例外は発生しません。一部のリンクにはファイルの名前がないため、Content-Disposition を読む必要があります。ダウンロードして情報を取得するために別のWebクライアントを使用しようとしましたが、同じ結果が得られました。

4

1 に答える 1

0

ファイル情報を取得する別の方法を見つけることで、問題を解決できました。

string Name = "";
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(Link);
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

for(int i=0; i < myHttpWebResponse.Headers.Count; i++)
{
    if (myHttpWebResponse.Headers.Keys[i] == "Content-Disposition")
    {
        Name = myHttpWebResponse.Headers[i];
    }
}
myHttpWebResponse.Close();
于 2013-09-18T10:05:29.887 に答える