Hallo,
ich bräuchte mal wieder einen Denkanstoß. Ich schreibe gerade ein Script, das für mich automatisch die Filme auf meiner Save-Platte mit den Filmen auf meiner ext. Platte am TV abgleicht, neue auf die TV-Platte kopiert und alte Daten löscht oder ersetzt.
Jetzt ist so ein Film ja in der Regel recht groß.
Ich bräuchte eine Möglichkeit, für das Kopieren von 1 großen Datei einen Fortschrittsbalken in meiner GUI zu füllen. Ich habe Google schon befragt, aber nur Lösungen zum Kopieren von mehreren Dateien gefunden, bei denen dann die Ordnergröße verglichen wird. Da ich aber nur eine Datei betrachte, geht das nicht, weil hier der Speicherplatz während dem Kopieren nicht ansteigt, sondern erst am Ende von 0 auf den vollen Wert springt (zumindest bei der Funktion mit xcopy, die ich mir geschrieben habe).
Func _FileCopyWithProgress($sSource, $sDest, $hProgress)
GUICtrlSetState($hProgress, 0)
Local $iFsize=FileGetSize($sSource)
;Local $DestSize0=DirGetSize($sDest, 2)
Local $sFile=StringRight($sSource, StringLen($sSource)-StringInStr($sSource, "\", 0, -1))
If StringRight($sDest, 1) <> "\" Then $sDest = $sDest & "\"
If FileExists($sDest & "\" & $sFile) Then FileDelete($sDest & "\" & $sFile)
Run('XCOPY "'& $sSource & '" "' & $sDest & '" /Q /C /R', "", @SW_HIDE )
While FileGetSize($sDest & "\" & $sFile)<$iFsize
GUICtrlSetState($hProgress, (FileGetSize($sDest & "\" & $sFile)/$iFsize*100)
Sleep(50)
WEnd
GUICtrlSetState($hProgress, 100)
Return 1
EndFunc
Alles anzeigen
Wie kann ich während dem Kopieren abschätzen, wieviel Prozent der Datei schon kopiert sind und wie viele noch fehlen?