я написал программу для скачивания файла в интернете через URL
private static async Task DownloadFileAsync()
{
WebClient client = new WebClient();
Console.Write("Enter URL for download file: ");
var siteAdress = Console.ReadLine();
Console.Write("Enter file name: ");
var saveFileName = Console.ReadLine();
client.DownloadFileTaskAsync(new Uri(siteAdress), saveFileName);
while (true)
{
Console.Write("Your file size: ");
Console.Write(BytesToString(size));
Thread.Sleep(100);
Console.SetCursorPosition(0, 3);
}
Все что я смог придумать это обернуть все в while(true), но тогда будет бесконечно без перерыва выводить размер файла, а мне бы хотелось чтобы это прекращалось когда размер файла переставал изменяться. Ниже код из интернета для получения размера файла который я нашел.
static String BytesToString(long byteCount) // метод для вывода информации о размере файла
{
string[] suf = { "Byt", "KB", "MB", "GB", "TB", "PB", "EB" };
if (byteCount == 0)
return "0" + suf[0];
long bytes = Math.Abs(byteCount);
int place = Convert.ToInt32(Math.Floor(Math.Log(bytes, 1024)));
double num = Math.Round(bytes / Math.Pow(1024, place), 1);
return (Math.Sign(byteCount) * num).ToString() + suf[place];
}