C#でファイルをダウンロードする方法は何がありますか?
C#でファイルをダウンロードする方法には複数の方法があります。
- WebClientクラスを使用すると、DownloadFileメソッドを使用してファイルをダウンロードできます。以下は例です:
string url = "http://example.com/file.txt";
string savePath = "C:\\Downloads\\file.txt";
using (WebClient client = new WebClient())
{
client.DownloadFile(url, savePath);
}
- HttpClientクラスを使用すると、GetAsyncメソッドを使ってファイルをダウンロードすることができます。以下はその例です。
string url = "http://example.com/file.txt";
string savePath = "C:\\Downloads\\file.txt";
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
using (Stream contentStream = await response.Content.ReadAsStreamAsync(),
stream = new FileStream(savePath, FileMode.Create, FileAccess.Write, FileShare.None, 8192, true))
{
await contentStream.CopyToAsync(stream);
}
}
- 「WebRequest」と「WebResponse」クラスを使うことで、WebRequestクラスを使用してHTTPリクエストを送信し、WebResponseクラスを使用してレスポンスデータを取得することができます。以下はその例です。
string url = "http://example.com/file.txt";
string savePath = "C:\\Downloads\\file.txt";
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream(),
stream = new FileStream(savePath, FileMode.Create, FileAccess.Write, FileShare.None, 8192, true))
{
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = responseStream.Read(buffer, 0, buffer.Length)) > 0)
{
stream.Write(buffer, 0, bytesRead);
}
}
こちらはよく使われる3つのファイルのダウンロード方法です。自分のニーズに合った方法を選んでください。