Sign in to follow this  
Followers 0
Steve1040

Trying to move all images to a single directory

3 posts in this topic

#1 ·  Posted (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 by Steve1040

Share this post


Link to post
Share on other sites



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

#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_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: 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 Program

AutoIt_Icon_small.pngUDFs: 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
 
AutoIt_Icon_small.pngExamples: 
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 AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0