Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.IO;
- using System.Net;
- namespace PV178.Homeworks.HW05.Utils
- {
- /// <summary>
- /// Utility class for downloading content from web
- /// </summary>
- public static class WebContentDownloader
- {
- private const string Route05Url = "http://is.muni.cz/www/409727/64666522/64666524/route05.gpx";
- /// <summary>
- /// Downloads file: route05.gpx from <see cref="Route05Url"/>
- /// </summary>
- /// <param name="filePath">Determines where downloaded file will be saved.</param>
- public static void DownloadContent(string filePath)
- {
- var req = (HttpWebRequest)WebRequest.Create(Route05Url);
- using (var resp = (HttpWebResponse) req.GetResponse())
- {
- using (var dataStream = resp.GetResponseStream())
- {
- using (var fileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write))
- {
- SaveResponse(fileStream, dataStream);
- }
- }
- }
- }
- /// <summary>
- /// Saves dataStream to fileStream
- /// </summary>
- /// <param name="fileStream">File stream to save data to</param>
- /// <param name="dataStream">Stream with GPX data</param>
- private static void SaveResponse(FileStream fileStream, Stream dataStream)
- {
- var inBuf = new byte[10000];
- var bytesToRead = inBuf.Length;
- var bytesRead = 0;
- while (bytesToRead > 0)
- {
- var n = dataStream.Read(inBuf, bytesRead, bytesToRead);
- if (n == 0)
- break;
- bytesRead += n;
- bytesToRead -= n;
- fileStream.Write(inBuf, 0, n);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement