J'ai besoin de capacités basiques de téléchargement de fichiers dans mon application et je ne peux pas utiliser WebClient.DownloadFile
[1]. Cette implémentation (naïve?) D'une méthode DownloadFile
suffit-elle? Y a-t-il des pièges que je n'aborde pas avec cette implémentation?Téléchargement de fichier simple via HTTP - est-ce suffisant?
public static void DownloadFile(String url, String destination)
{
using (var request = (HttpWebRequest)WebRequest.Create(url))
{
request.Method = "GET";
request.Timeout = 100000; // 100 seconds
using (var response = request.GetResponse())
{
using (var responseStream = response.GetResponseStream())
{
using (var fileStream = File.Open(destination,
FileMode.Create,
FileAccess.Write,
FileShare.None))
{
var MaxBytesToRead = 10 * 1024;
var buffer = new Byte[MaxBytesToRead];
var totalBytesRead = 0;
var bytesRead = responseStream.Read(buffer,
0,
MaxBytesToRead);
while (bytesRead > 0)
{
totalBytesRead += bytesRead;
fileStream.Write(buffer, 0, bytesRead);
bytesRead = responseStream.Read(buffer,
0,
MaxBytesToRead);
}
}
}
}
}
}
Merci!
[1] .Net Compact Framework ...
'HttpWebRequest' est la seule implémentation' WebRequest' concrète prise en charge dans .Net CF. Autre que cela - merci! –