BlackHole.Common.Helpers.CommonHelper.DownloadFilePart C# (CSharp) Method

DownloadFilePart() public static method

public static DownloadFilePart ( long id, long currentPart, string path ) : BlackHole.Common.Network.Protocol.DownloadedFilePartMessage
id long
currentPart long
path string
return BlackHole.Common.Network.Protocol.DownloadedFilePartMessage
        public static DownloadedFilePartMessage DownloadFilePart(long id, long currentPart, string path)
        {
            path = Path.GetFullPath(path);

            using (var stream = new FileStream(path, FileMode.Open))
            {
                var totalPart = stream.Length / FilePartSize;

                var partSize = currentPart != totalPart ? FilePartSize : stream.Length - FilePartSize * currentPart;
                // read only one chunck
                var output = new byte[partSize];
                stream.Seek(FilePartSize * currentPart, SeekOrigin.Begin);
                stream.Read(output, 0, (int)partSize);

                return new DownloadedFilePartMessage
                {
                    Id = id,
                    CurrentPart = currentPart,
                    Path = path,
                    TotalPart = totalPart,
                    RawPart = output
                };
            }
        }