Hallo mal weder Liebe Community
Also ich habe eine Frage zu meinem Backup-Programm mit Progressbar...
während mein Programm die zu Backupenden

Dateien ausließt kummuliert es im Hintergrund für jede Datei
mit
sizelongFileListAll += p_datei.Length; die Dateigröße auf meine Variable.
Hier ist schon das erste Problem da: Length gibt LONG zurück, was ein gerundeter Wert ist
Da ich am Anfang des Backups den Max-Wert meiner Progressbar auf diese FileSize setze (Filesize/3071

)
kommt es später zu einem Fehler, da die Größen, welche durch Length ermittelt werden, zu klein sind.
Während das Programm arbeitet, werden in der Progressbar quasi immer die schon eingelesenen Bytes (durch 3071) angezeigt,
was mich zu einer ziemlich genauen Statusanzeige bringt.
Folgender Sachverhalt:
Ich lese alle Dateien ein und kummuliere auf den long Wert die Größe jeder Datei:
3 Dateien -> 40037296 Bytes
Jetzt werden aber beim Schreiben die reell geschrieben Bytes in der Progressbar grafisch angezeigt
Windows sagt hier:
3 Dateien -> 40051632 Bytes
VIEL zu ungenau, wenns dann mal 30726 Dateien sind
Klar könnte ich fix einen Workaround bauen - aber das ist nicht meine Art
Deswegen die Frage an euch - keine Workarounds, dafür bin ich zu neugierig
Danke
//edit
man könnte natürlich über einen Streamreader gehen und da Datei für Datei bis Schluss einlesen und hätte wahrscheinlich die genauen Bytes raus - das ist denke ich aber seeehr Performancelastig (?)
Moderiert von
Kha: Topic aus WinForms verschoben am Do 30.06.2011 um 20:27