Forms ProgressBar with MegaApiClient download
using thoses resources:
https://gpailler.github.io/MegaApiClient/articles/samples.html
https://gpailler.github.io/MegaApiClient/articles/faq.html
=> download a file hosted by mega & show a forms progress bar
i'm not sure how to adapt the progress bar system from mega to a windowsforms progress bar
https://gpailler.github.io/MegaApiClient/articles/samples.html
https://gpailler.github.io/MegaApiClient/articles/faq.html
=> download a file hosted by mega & show a forms progress bar
- the download is NOT ASYNC
- c# 6.0
i'm not sure how to adapt the progress bar system from mega to a windowsforms progress bar
internal static class Program
{
private const string packurl = "https://mega.nz/file/R1pgBAAI#CDFU6xx9EwCEZJ1Z0vKfl_o9DNtPBNjllpuAVZ38nn4";
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
// downloaded zip name
string LCGamePath = "F:\\Games\\Steam\\steamapps\\common\\Lethal Company";
string packname = "MedalCompany.zip";
// setupprogress bar
ProgressBar pBar1 = new();
// Display the ProgressBar control.
if (pBar1 == null)
return;
pBar1.Visible = true;
// Set Minimum to 1 to represent the first file being copied.
pBar1.Minimum = 1;
// Set Maximum to the total number of files to copy.
pBar1.Maximum = 100;
// Set the initial value of the ProgressBar.
pBar1.Value = 1;
// Set the Step property to a value of 1 to represent each file being copied.
pBar1.Step = 1;
// MegaApi Anonymous login
MegaApiClient client = new MegaApiClient();
client.LoginAnonymous();
Uri fileLink = new Uri(packurl);
INode node = client.GetNodeFromLink(fileLink);
void performstep()
{
pBar1.PerformStep();
pBar1.Show();
}
using (var downloadStream = client.Download(node))
using (var progressionStream = new ProgressionStream(downloadStream, x => performstep()))
using (var fileStream = new FileStream(LCGamePath + "\\" + packname, FileMode.Create))
{ progressionStream.CopyTo(fileStream);
}
client.Logout();
}
}internal static class Program
{
private const string packurl = "https://mega.nz/file/R1pgBAAI#CDFU6xx9EwCEZJ1Z0vKfl_o9DNtPBNjllpuAVZ38nn4";
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
// downloaded zip name
string LCGamePath = "F:\\Games\\Steam\\steamapps\\common\\Lethal Company";
string packname = "MedalCompany.zip";
// setupprogress bar
ProgressBar pBar1 = new();
// Display the ProgressBar control.
if (pBar1 == null)
return;
pBar1.Visible = true;
// Set Minimum to 1 to represent the first file being copied.
pBar1.Minimum = 1;
// Set Maximum to the total number of files to copy.
pBar1.Maximum = 100;
// Set the initial value of the ProgressBar.
pBar1.Value = 1;
// Set the Step property to a value of 1 to represent each file being copied.
pBar1.Step = 1;
// MegaApi Anonymous login
MegaApiClient client = new MegaApiClient();
client.LoginAnonymous();
Uri fileLink = new Uri(packurl);
INode node = client.GetNodeFromLink(fileLink);
void performstep()
{
pBar1.PerformStep();
pBar1.Show();
}
using (var downloadStream = client.Download(node))
using (var progressionStream = new ProgressionStream(downloadStream, x => performstep()))
using (var fileStream = new FileStream(LCGamePath + "\\" + packname, FileMode.Create))
{ progressionStream.CopyTo(fileStream);
}
client.Logout();
}
}