Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Prędkość pobierania pliku


Rekomendowane odpowiedzi

Opublikowano

Witam, chciałbym mieć ustawione w "DSpeed" (Label) prędkość pobielanego pliku i ile się go już pobrało np :

 

1000Mb/s 32MB/161MB

 

Kod do pobieranego pliku :

 Button1.Enabled = False
        Me.Hide()
        NotifyIcon1.Visible = True
        NotifyIcon1.BalloonTipText = "Program aktualizuje się w tle,by pobudzić program kliknij na mnie 2 razy  ~kosmo53"
        NotifyIcon1.ShowBalloonTip(1000)
        Button6.Enabled = False
        Button7.Enabled = False
        Label4.Text = "Aktualizacja..."
        Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
        WC.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/s/rtxaq38h2kqm77x/.minecraft.zip?dl=1&token_hash=AAH9E9ehcryRW0P_5owXjXjLCSANLI9Ygy-e5hmoCwYUyA"), appData & "/FCMCUpdate.zip")

i dodatki :

Public Class Launcher
    Dim WithEvents WC As New WebClient

Proszę o pomoc.

sygna.png

Opublikowano


SW = Stopwatch.StartNew

End Sub

 

Dim SW As Stopwatch

 

Private Sub client_ProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs)

Label1.Text = "Download speed = " + (e.BytesReceived / SW.ElapsedMilliseconds).ToString + " KB/Sec"

 


reklama.png

Opublikowano

Pobierając tak plik nie będziesz (chyba, przynajmniej w vb.net) sprawdzić ile się już pobrało. Chyba że kombinować chcesz z jakimś timerem oraz odświezaniem i otrzymywaniem wagi pliku, ale to nie ma większego sensu

 

Kb/s możesz sobie wyliczyć np. tym kodem (przekształć go, jest w c#, masz tu wszystko co potrzebne)

mWebClient.DownloadProgressChanged += (sender, e) => progressChanged(e.BytesReceived);
//...
DateTime lastUpdate;
long lastBytes = 0;

private void progressChanged(long bytes)
{
if (lastBytes == 0)
{
lastUpdate = DateTime.Now;
lastBytes = bytes;
return;
}

var now = DateTime.Now;
var timeSpan = now - lastUpdate;
var bytesChange = bytes - lastBytes;
var bytesPerSecond = bytesChange / timeSpan.Seconds;

lastBytes = bytes;
lastUpdate = now;
}

możesz też spróbować w ten sposób 

 

 

 
WebClient client = new WebClient ();
Uri uri = new Uri(address);

// Specify that the DownloadFileCallback method gets called
// when the download completes.
client.DownloadFileCompleted += new AsyncCompletedEventHandler (DownloadFileCallback2);
// Specify a progress notification handler.
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback);
client.DownloadFileAsync (uri, "serverdata.txt");

private static void DownloadProgressCallback(object sender, DownloadProgressChangedEventArgs e)
{
// Displays the operation identifier, and the transfer progress.
Console.WriteLine("{0} downloaded {1} of {2} bytes. {3} % complete...", 
(string)e.UserState,
e.BytesReceived,
e.TotalBytesToReceive,
e.ProgressPercentage);
}
 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...