Sky05 Posted May 12, 2022 Share Posted May 12, 2022 Hi guys :-) I have been using this script to move ALL content from A to B, and was wondering if anyone had an idea for how I could implement a progress bar? $source = 'C:\temp\folderA' $dest = 'C:\temp\folderB' FileMove($source & "\*.*", $dest, 1) ;Move all source files first $hSearch = FileFindFirstFile($Source & "\*.*") ;Now find any remaining (in this case: folders) if $hSearch = -1 then exit ;No folders While 1 $hFilename = FileFindNextFile($hSearch) if @ERROR then exitloop ;No more files DirMove($source & "\" & $hFilename, $Dest,1);move subdir and all contents to new location WEnd Link to comment Share on other sites More sharing options...
Musashi Posted May 12, 2022 Share Posted May 12, 2022 (edited) 1 hour ago, Sky05 said: ... and was wondering if anyone had an idea for how I could implement a progress bar? There are several solutions, e.g. : Copy-UDF made by @Yashied : https://www.autoitscript.com/forum/topic/121833-copy-udf/ I like to use Oscar's FileCopyEx UDF. He is a moderator in the German forum but not very active in the English one. Therefore all comments and function descriptions are in german language. However, it should not be a huge problem to translate them using Google Translator or Deepl . See : https://autoit.de/thread/83202-filecopyex/ Edited May 12, 2022 by Musashi "In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move." Link to comment Share on other sites More sharing options...
Subz Posted May 12, 2022 Share Posted May 12, 2022 A simple example, alternatively search Google with the term "AutoIt Copy with Progress bar". #include <File.au3> Global $g_sSource = "C:\temp\folderA" Global $g_sTarget = "C:\temp\folderB" _Example1() Func _Example1() Local $aSource = _FileListToArrayRec($g_sSource, "*", 1, 1, 0, 1) If @error Then Exit MsgBox(4096, "Error", "No Folders/Files found.") Local $iIndex = 100/$aSource[0], $iProgress = $iIndex ProgressOn("Moving", $g_sSource) For $i = 1 To $aSource[0] ProgressSet($iProgress, "..\" & $aSource[$i], "Moving : " & $g_sSource) FileMove($g_sSource & "\" & $aSource[$i], $g_sTarget & "\" & $aSource[$i], 9) $iProgress += $iIndex Next ProgressSet(100, "Done", "Complete") Sleep(5000) EndFunc Zedna 1 Link to comment Share on other sites More sharing options...
Sky05 Posted May 18, 2022 Author Share Posted May 18, 2022 Thank you Subz! Just what I was seeking 🙂 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted May 18, 2022 Moderators Share Posted May 18, 2022 Sky05, Even as the author of _FileListToArrayRec, I must admit it can be a bit slow at times as it has a lot of internal code to check for specific names, extensions, type, etc. As all you are looking for is a count of ALL the content, you might find DirGetSize is a faster solution. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
goodmanjl531 Posted August 5, 2022 Share Posted August 5, 2022 (edited) @Subz First Great script!!!! can this be adapted easily for file deletion? I would also guess if I want this function to COPY instead of move I would simply change FileMove($g_sSource & "\" & $aSource[$i], $g_sTarget & "\" & $aSource[$i], 9) to FileCopy($g_sSource & "\" & $aSource[$i], $g_sTarget & "\" & $aSource[$i], 9) could you use DirCopy as well? Edited August 5, 2022 by goodmanjl531 Link to comment Share on other sites More sharing options...
Subz Posted August 5, 2022 Share Posted August 5, 2022 Yes, you can adapt the script to FileCopy, FileDelete and DirCopy. You could also convert the code into a function to perform all those tasks. 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