Esempio n. 1
0
 public override RemoteFileInfo GetFileInfo(Uri uri)
 {
     RemoteFileInfo fileInfo = null;
     WebRequest request = GetRequest(uri);
     using (var response = (HttpWebResponse)request.GetResponse())
     {
         bool acceptRanges = String.Equals(response.Headers["Accept-Ranges"], "bytes", StringComparison.InvariantCultureIgnoreCase);
         fileInfo = new RemoteFileInfo(response.ContentType, response.LastModified, response.ContentLength, acceptRanges);
     }
     return fileInfo;
 }
Esempio n. 2
0
 private IEnumerable<Segment> GetSegments(int segmentCount, RemoteFileInfo remoteFileInfo)
 {
     long fileSize = remoteFileInfo.FileSize;
     long segmentSize = fileSize / segmentCount;
     var segments = new List<Segment>();
     long segmentStart = 0;
     while (segmentStart < fileSize)
     {
         long segmentEnd = Math.Min(fileSize, segmentStart + segmentSize);
         if (segments.Count == segmentCount - 1)
             segmentEnd = fileSize;
         segments.Add(new Segment(segmentStart, segmentEnd));
         segmentStart = segmentEnd;
     }
     return segments;
 }