Steve1040 0 Posted September 20, 2007 (edited) How can I modify the following code to move all image file to a specific folder. The files are all currently in sub-folders within $path. I want to goto each folder and move any image files (about 100 folders 1K images total ) to $desination (overwrite is ok) $path="C:\all\" $files="*.txt" $desination="C:\new\directory\" FileMover($path,$files,$desination) Func FileMover($path,$files,$dest) $err=1 $move=FileFindFirstFile ($path & $files) While $err=1 $err=FileMove ($path & $move,$dest & $move) $move=FileFindNextFile () Wend EndFunc Edited September 20, 2007 by Steve1040 Share this post Link to post Share on other sites
PsaltyDS 41 Posted September 20, 2007 FileFindFirstFile/FileFindNextFile only search the current directory, and only find files, not the subdirectories that need to be searched recursively. So use _FileListToArray() instead, and make the function recursive: #include <file.au3> $path = "C:\all" $files = ".txt" $desination = "C:\new\directory" FileMover($path, $files, $desination) Func FileMover($sSrc, $sMask, $sDest) If StringRight($sSrc, 1) <> "\" Then $sSrc &= "\" If StringRight($sDest, 1) <> "\" Then $sDest &= "\" Local $avList = _FileListToArray($sSrc) ; list all files and dirs For $n = 1 To $avList[0] ; Test for directories If StringInStr(FileGetAttrib($sSrc & $avList[$n]), "D") Then ; Search subdirectory FileMover($sSrc & $avList[$n], $sMask, $sDest) Else ; Test file name for search string If StringInStr($avList[$n], $sMask) Then FileMove($sSrc & $avList[$n], $sDest & $avList[$n]) EndIf Next EndFunc ;==>FileMover Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Share this post Link to post Share on other sites
MrCreatoR 159 Posted September 20, 2007 #include <File.au3> $sPath = "C:\all" $dPath = "C:\new\directory" $Mask = "*.txt" _FileMoveEx($sPath, $dPath, $Mask, 9) MsgBox(64, "Results", @extended & " Files was moved") Func _FileMoveEx($sPath, $dPath, $sMask='*', $Flag=0) Local $Extended=0 $Search = FileFindFirstFile($sPath & "\" & $sMask) While $Search <> -1 $FileToCopy = FileFindNextFile($Search) If @error = 1 Then ExitLoop $Extended += FileMove($sPath & "\" & $FileToCopy, $dPath & "\", $Flag) WEnd FileClose($Search) Local $DirsArr = _FileListToArray($sPath, '*', 2) For $i = 1 To UBound($DirsArr)-1 _FileMoveEx($sPath & "\" & $DirsArr[$i], $dPath, $sMask, $Flag) $Extended += @extended Next Return SetExtended($Extended) EndFunc Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team Share this post Link to post Share on other sites