mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-11 16:53:03 +01:00
update download progress reporting
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MediaBrowser.Controller.IO
|
||||
{
|
||||
@@ -23,5 +24,27 @@ namespace MediaBrowser.Controller.IO
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task CopyToAsync(Stream source, Stream destination, int bufferSize, IProgress<double> progress, long contentLength, CancellationToken cancellationToken)
|
||||
{
|
||||
byte[] buffer = new byte[bufferSize];
|
||||
int read;
|
||||
long totalRead = 0;
|
||||
|
||||
while ((read = source.Read(buffer, 0, buffer.Length)) != 0)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
destination.Write(buffer, 0, read);
|
||||
|
||||
totalRead += read;
|
||||
|
||||
double pct = totalRead;
|
||||
pct /= contentLength;
|
||||
pct *= 100;
|
||||
|
||||
progress.Report(pct);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user