Wie kann man die Zeit einen Kopiervorgangs berechnen?

Scrapy

Mitglied
Also mir gehts erstmal um das Prinzip:

Klar, wenn ich eine Kopiervorgang berechnen will, brauche ich folgendes:
- Anzahl der Dateien
- Gesamtgröße von allen Dateien

Okay und dann hörts schon auf... Eventuell eben die Lese- und Schreibgeschwindigkeit!?
Gibt es in C# eine derartige Funktion? Windows berechnet das ja auch eher überschläglich... sowas würde mir auch schon reichen.
Zudem darf die Berechnung nicht länger als der eigentliche Vorgang dauern. ;)

Der Einfachheit könnte man die in einer ProgressBar, pro Datei, einen entsprechenden Schritt weiter setzten. Aber das wäre eben nur ohne Zeitangabe und eine fiktive Zeitangabe würde den Anwender eher verwirren.
 
Ok mach am besten Folgendes.

Mess die Zeit beim Start.

Bei der Statusanzeige berechnest du einfach:

aktuelle_zeit - start_zeit = sek_vergangen

jetzt rechnest du die zeit aus:

(übertragene_bytes / sek_vergangen) * gesamt_bytes = dauer für alles
oder:

(übertragene_bytes / sek_vergangen) * (gesamt_bytes - übertragene_bytes) = dauer für alles

Das wäre mein Ansatz.

Ich würde übrigends Threads benutzen.
 
Zurück