M1chael Posted August 20, 2008 Share Posted August 20, 2008 Hey This is my first post in the forum, so forgive me the typo's... I've been looking around the forum for a simple progressbar wich displays during DirCopy. There are many different ways off doing this, but none that was quite simple enough for my use. So i've created this small simple function, wich display the progress of "xcopy" by counting the files in the source and destination dir. I know this is not 100% progress, but it's better then nothing... (The reson i'm not using DIR size, is because NTFS predicts the size of the copy, and will therefore display 100% in a manor of secunds...) CODE #cs ---------------------------------------------------------------------------- AutoIt Version: 3.2.12.1 Author: Michael Østergaard Sørensen Script Function: Simple copyprogress bar, using xcopy. #ce ---------------------------------------------------------------------------- ;Include #include <GuiConstants.au3> #include <file.au3> COPYPROGRESS("D:\Medier\DiVX","c:\Temp\DiVX") Func COPYPROGRESS($x,$y) If FileExists($y) = 0 Then DirCreate($y) EndIf Run(@ComSpec & " /c " & 'xcopy "' & $x & '\*.*" "' & $y & '\*.*" /s/r/v/y',"") $source = DirGetSize($x,1) $dest = DirGetSize($y,1) Sleep(500) ProgressOn("","Copying",$dest[1] & " of " & $source[1] & " files copied") While $dest[1] < $source[1] $dest = DirGetSize($y,1) Sleep(100) $progress = ($dest[1] / $source[1]) * 100 ProgressSet($progress,$dest[1] & " of " & $source[1] & " files copied") Sleep(100) WEnd ProgressSet(100,"Done!") Sleep(500) ProgressOff() EndFunc COPYPROGRESS.au3 Link to comment Share on other sites More sharing options...
Andreik Posted August 20, 2008 Share Posted August 20, 2008 Look an example: expandcollapse popup#include <File.au3> $GUI = GUICreate("Copy files",350,100) $PATH1 = GUICtrlCreateInput(@ScriptDir,5,5,270,20) $BROWSE1 = GUICtrlCreateButton("BROWSE",280,5,65,20) $PATH2 = GUICtrlCreateInput(@DesktopDir,5,30,270,20) $BROWSE2 = GUICtrlCreateButton("BROWSE",280,30,65,20) $COPY = GUICtrlCreateButton("COPY",150,60,50,30) GUISetState(@SW_SHOW,$GUI) While 1 $MSG = GUIGetMsg() Select Case $MSG = $BROWSE1 $PATH = FileSelectFolder("Select path",@ScriptDir,1) If Not @error Then GUICtrlSetData($PATH1,$PATH) EndIf Case $MSG = $BROWSE2 $PATH = FileSelectFolder("Select path",@ScriptDir,1) If Not @error Then GUICtrlSetData($PATH2,$PATH) EndIf Case $MSG = $COPY $FROM = GUICtrlRead($PATH1) $TO = GUICtrlRead($PATH2) $FILE = _FileListToArray($FROM) ProgressOn("","Copying",$FROM & " to " & $TO) For $INDEX = 1 To $FILE[0] FileCopy($FROM & "\" & $FILE[$INDEX],$TO & "\" & $FILE[$INDEX],1) ProgressSet($INDEX*100/Number($FILE[0]),$FROM & "\" & $FILE[$INDEX] & " to " & @CRLF & $TO & "\" & $FILE[$INDEX]) Next ProgressOff() Case $MSG = -3 Exit EndSelect Sleep(20) WEnd When the words fail... music speaks. Link to comment Share on other sites More sharing options...
gemineyez Posted August 25, 2008 Share Posted August 25, 2008 I rather like what Andreik created it looks clean and actually does not require me to have any dos file doing the actually copy/move in order to have a progress bar attached to it. But there is an Aesthetic look to it that does not bring out the best in what I created. Was wondering if anyone or even you Andreik can help me to tweak my lil joy up a bit.http://www.autoitscript.com/forum/index.ph...mp;#entry570395(did not want to post it again, you can find it at another thread where it all started from.Thanks. Go farther, go further, Go Harder,Is that not why we came?And if not then why bother? Link to comment Share on other sites More sharing options...
LimeSeed Posted August 25, 2008 Share Posted August 25, 2008 this should have been placed in example scripts, not help and support :-) global $warming = true Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now