Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. using System.IO;
  2. using System.Net;
  3.  
  4. namespace PV178.Homeworks.HW05.Utils
  5. {
  6. /// <summary>
  7. /// Utility class for downloading content from web
  8. /// </summary>
  9. public static class WebContentDownloader
  10. {
  11. private const string Route05Url = "http://is.muni.cz/www/409727/64666522/64666524/route05.gpx";
  12.  
  13. /// <summary>
  14. /// Downloads file: route05.gpx from <see cref="Route05Url"/>
  15. /// </summary>
  16. /// <param name="filePath">Determines where downloaded file will be saved.</param>
  17. public static void DownloadContent(string filePath)
  18. {
  19. var req = (HttpWebRequest)WebRequest.Create(Route05Url);
  20. using (var resp = (HttpWebResponse) req.GetResponse())
  21. {
  22. using (var dataStream = resp.GetResponseStream())
  23. {
  24. using (var fileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write))
  25. {
  26. SaveResponse(fileStream, dataStream);
  27. }
  28. }
  29. }
  30. }
  31.  
  32. /// <summary>
  33. /// Saves dataStream to fileStream
  34. /// </summary>
  35. /// <param name="fileStream">File stream to save data to</param>
  36. /// <param name="dataStream">Stream with GPX data</param>
  37. private static void SaveResponse(FileStream fileStream, Stream dataStream)
  38. {
  39. var inBuf = new byte[10000];
  40. var bytesToRead = inBuf.Length;
  41. var bytesRead = 0;
  42. while (bytesToRead > 0)
  43. {
  44. var n = dataStream.Read(inBuf, bytesRead, bytesToRead);
  45. if (n == 0)
  46. break;
  47. bytesRead += n;
  48. bytesToRead -= n;
  49. fileStream.Write(inBuf, 0, n);
  50. }
  51. }
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement