Verschoben nach Basistechnologien, da anscheinend das byteweise Kopieren und nicht die Progressbar das Problem ist.
Hallo,
Ich wollte gern für ein Programm das bestimmte Daten von A nach B kopieren soll eine Progressbar einfügen.
Dies habe ich soweit auch geschaft.
Nur hab ich das aktuell so gemacht das Sie nach jeder kopierten Datei sich erhöht.
Jedoch hätte ich es lieber so das sich die Leiste immer pro kopiertes Byte erhöht (wie bei dem Windows kopieren).
Weis aber leider nicht wie ich das machen soll.
Könnt ihr mir da helfen ?
MfG Scarpall
Hallo scarpall,
wenn du die File.Copy Methode vom .NET Framework verwendest dann bekommst du kein Feedback.
D.h. diese Methode hat keine Eigenschaft welche dir den Progress mitteilt.
Kurz gesagt ist es aber nur ein Wrapper um den Win32 API call "CopyFile" in der kernel32.dll
Diese Win-Api Funktion bietet die Funktion für den Progress.
D.h. du kannst dir den Wrapper selbst so schreiben dass du den Progress bekommst.
Guckst du hier: Kernel32.CopyFileEx
Grüße
Michael
Hi,
schonmal danke für die schnelle Antwort.
werds mir dann mal ansehen und mich dann nochmal melden.
Könnte sein das ich dann noch ein wenig hilfe beim zusammenschreiben brauch aber wir werden sehen:)
MfG Scarpall
Hallo Scarpall,
Du kannst das Kopieren einfach selbst erledigen, indem Du ein paar Bytes liest und wieder schreibst. Geht genauso schnell wie File.Copy.
Nicht Byteweise sondern immer einen ganzen Block lesen und schreiben. Nicht bei jedem Byte den Bildschirm updaten, sondern nur max. 10 mal pro Sekunde.
Nicht das Windows-Filecopy als Vorbild nehmen :
The Author Of The Windows File Copy Dialog Visits Some Friends
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3