Aladdin Posted February 17, 2009 Share Posted February 17, 2009 hi, the title of my thread says what i need... how to search for a specific file in a directory and all of it's sub directories? and then get the full path of file found in output and move the file to C:\MovedFiles file names are: solo.mpg ex.mpg can any of you help me? searching the forum did not helped _______________________________ Link to comment Share on other sites More sharing options...
bo8ster Posted February 17, 2009 Share Posted February 17, 2009 Have a look in the help file under FileFindFirstFile, FileFindNextFile and FileExists. Post your code because code says more then your words can. SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y. Use Opt("MustDeclareVars", 1)[topic="84960"]Brett F's Learning To Script with AutoIt V3[/topic][topic="21048"]Valuater's AutoIt 1-2-3, Class... is now in Session[/topic]Contribution: [topic="87994"]Get SVN Rev Number[/topic], [topic="93527"]Control Handle under mouse[/topic], [topic="91966"]A Presentation using AutoIt[/topic], [topic="112756"]Log ConsoleWrite output in Scite[/topic] Link to comment Share on other sites More sharing options...
seandisanti Posted February 17, 2009 Share Posted February 17, 2009 Have a look in the help file under FileFindFirstFile, FileFindNextFile and FileExists.You can also use the 'Search' function on the forum to find a pretty good assortment of scripts that do what you want in a variety of ways. Link to comment Share on other sites More sharing options...
Malkey Posted February 17, 2009 Share Posted February 17, 2009 hi, the title of my thread says what i need... how to search for a specific file in a directory and all of it's sub directories? and then get the full path of file found in output and move the file to C:\MovedFiles file names are: solo.mpg ex.mpg can any of you help me? searching the forum did not helped You could use the script located here http://www.autoitscript.com/forum/index.ph...st&p=632102 then use FileMove () function to move the file or files found. To get the file name from the full path and file name string you can use ; Get File name $sFile = "c:\Program Files\Autio\AutoIt3.chm" $sName = StringRegExpReplace($sFile, "^.*\\", "") ; Returns FileName only MsgBox(0, "Extension", $sName) Link to comment Share on other sites More sharing options...
Aladdin Posted February 18, 2009 Author Share Posted February 18, 2009 Thanks all for the help, now only the last problem is that searched fies are not going to be moved or deleted. i have the problem here: Global $sRet Local $sPath = @HomeDrive Local $sFindFile = "solo.mpg" $aRetArray = _FindPathName($sPath, $sFindFile) FileDelete($aRetArray)oÝ÷ Ø[¥Ç+b²«y«¢+Øì}¥±MÉ ±ÐíAÑ ¹5ͬÐì°±Ðí=ÁÑ¥½¸ À´¹½Éµ°°Ä´ÉÕÉÍ¥Ù¤Ðì¤(ìIÑÕɹÌÉÉ严ѡÈÉÉä½¥±Ì¡Õ±°ÁÑ ¤Ý¡É¸¸¸(ìÉÉålÁt¥Ì¹ÕµÈ½¥±Ì¸(ìÉÉålÁtôÀ¥¹½Ñ¡¥¹½Õ¹¸(ì(ìa5A1UM(ì´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´((¥¹±Õ±Ðí¥±¹ÔÌÐì(¥¹±Õ±ÐíÉÉä¹ÔÌÐì()±½°ÀÌØíÍIÐ)1½°ÀÌØíÍAÑ ô!½µÉ¥Ù)1½°ÀÌØíÍ¥¹¥±ôÅÕ½Ðíͽ±¼¹µÁÅÕ½Ðì((ÀÌØíIÑÉÉäô}¥¹AÑ¡9µ ÀÌØíÍAÑ °ÀÌØíÍ¥¹¥±¤(í}ÉÉå¥ÍÁ±ä ÀÌØíIÑÉÉä¤(졽ÜѼ±Ñ¥±ÌÍÉ¡ü)¥±±Ñ ÀÌØíIÑÉÉä¤ìMɡ̱°ÍÕ½±É̽ÀÌØíÍAÑ ½ÈÀÌØíÍ¥¹¥± ¨¹üÝ¥±ÉÌÁѤ(ìyyyyyyyyyyyyyyyyyyyyyyyyyyx(ìIÑÕɹ̸ÉÉ佹ѥ¹¥¹Õ±°ÁÑ ¹¹µ½±°µÑ¡Ì¸(ì9յȽµÑ¡Ì¥Ì¥¸éɼ¥¹à½ÉÉä)Õ¹}¥¹AÑ¡9µ ÀÌØíÍAÑ °ÀÌØíÍ¥¹¥±¤(1½°ÀÌØíÍMÕ½±ÉAÑ °ÀÌØí¥%¹à°ÀÌØí½±ÉÌ(ÀÌØíÍÉ ô¥±¥¹¥ÉÍÑ¥± ÀÌØíÍAÑ µÀìÅÕ½ÐìÀäÈìÅÕ½ÐìµÀìÀÌØíÍ¥¹¥±¤(ÀÌØí½±ÉÌô}¥±1¥ÍÑQ½ÉÉä ÀÌØíÍAÑ °ÅÕ½Ðì¨ÅÕ½Ðì°È¤(]¡¥±Ä(ÀÌØí¥±ô¥±¥¹9áÑ¥± ÀÌØíÍÉ ¤(%ÉɽÈQ¡¸(á¥Ñ1½½À(±Í(ÀÌØíÍIеÀìôÀÌØíÍAÑ µÀìÅÕ½ÐìÀäÈìÅÕ½ÐìµÀìÀÌØí¥±µÀìÅÕ½ÐíðÅÕ½Ðì(¹%(]¹(¥± ±½Í ÀÌØíÍÉ ¤(½ÈÀÌØí¥%¹àôÄQ¼ÀÌØí½±ÉÍlÁt(ÀÌØíÍMÕ½±ÉAÑ ôÀÌØíÍAÑ µÀìÅÕ½ÐìÀäÈìÅÕ½ÐìµÀìÀÌØí½±ÉÍlÀÌØí¥%¹át(ÀÌØí½±ÉÍMÕÌô}¥±1¥ÍÑQ½ÉÉä ÀÌØíÍMÕ½±ÉAÑ °ÅÕ½Ðì¨ÅÕ½Ðì°È¤(%%ÍÉÉä ÀÌØí½±ÉÍMÕ̤Q¡¸}¥¹AÑ¡9µ ÀÌØíÍMÕ½±ÉAÑ °ÀÌØíÍ¥¹¥±¤(9áÐ(IÑÕɸMÑÉ¥¹MÁ±¥Ð¡MÑÉ¥¹QÉ¥µI¥¡Ð ÀÌØíÍIаĤ°ÅÕ½ÐíðÅÕ½Ðì¤)¹Õ¹ìôôÐí}¥¹AÑ¡9µ _______________________________ Link to comment Share on other sites More sharing options...
Danny35d Posted February 18, 2009 Share Posted February 18, 2009 The function return an array. You cannot use it like FileDelete($aRetArray). Try it:Global $sRet Local $sPath = @HomeDrive Local $sFindFile = "solo.mpg" $aRetArray = _FindPathName($sPath, $sFindFile) For $x = 1 To $aRetArray[0] FileDelete($aRetArray[$x]) Next AutoIt Scripts:NetPrinter - Network Printer UtilityRobocopyGUI - GUI interface for M$ robocopy command line Link to comment Share on other sites More sharing options...
Malkey Posted February 18, 2009 Share Posted February 18, 2009 Try this. expandcollapse popup#include <File.au3> #include <Array.au3> Global $sRet Local $sPath = @HomeDrive Local $sFindFile = "solo.mpg" Local $MoveToDir = "C:\MovedFiles" $aRetArray = _FindPathName($sPath, $sFindFile) ;_ArrayDisplay($aRetArray) If $aRetArray[1] = "" Then MsgBox(0, "", "File not found") Else For $iIndex = 1 To UBound($aRetArray) - 1; Work through contents of array FileMove($aRetArray[$iIndex], $MoveToDir & "\" & StringRegExpReplace($aRetArray[$iIndex], "^.*\\", "")) FileDelete($aRetArray[$iIndex]); Delete file at found location Next EndIf Func _FindPathName($sPath, $sFindFile) Local $sSubFolderPath, $iIndex, $aFolders $search = FileFindFirstFile($sPath & "\" & $sFindFile) $aFolders = _FileListToArray($sPath, "*", 2) While 1 $file = FileFindNextFile($search) If @error Then ExitLoop Else $sRet &= $sPath & "\" & $file & "|" EndIf WEnd FileClose($search) For $iIndex = 1 To $aFolders[0] $sSubFolderPath = $sPath & "\" & $aFolders[$iIndex] $aFoldersSubs = _FileListToArray($sSubFolderPath, "*", 2) If IsArray($aFoldersSubs) Then _FindPathName($sSubFolderPath, $sFindFile) Next Return StringSplit(StringTrimRight($sRet, 1), "|") EndFunc ;==>_FindPathName 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