gr1fter Posted February 23, 2011 Share Posted February 23, 2011 Hello, what I do seems simple but I cannot even find out where to begin with AutoIT on how to search for a folder and delete it. for example I would like to search C:\Documents and Settings\* and delete all the folders named TEST. Can someone please point me into the right direction. Thanks Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 23, 2011 Moderators Share Posted February 23, 2011 gr1fter,Use my RecFileListToArray UDF (it does look for folders as well ) to list all the folders with that name on that path. Then loop through the resulting array and use DirRemove on them.The UDF is in my sig. 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...
gr1fter Posted February 24, 2011 Author Share Posted February 24, 2011 gr1fter,Use my RecFileListToArray UDF (it does look for folders as well ) to list all the folders with that name on that path. Then loop through the resulting array and use DirRemove on them.The UDF is in my sig. M23Thanks for the UDF! I have been messing with it and I cannot even get the basics to work. Is it possible to provide me an example of how the UDF works correctly, cause whatever I am doing is wrong and the script runs successful but does not return anything. Much appreciated. Link to comment Share on other sites More sharing options...
guinness Posted February 24, 2011 Share Posted February 24, 2011 Probably best to post your code first, because as you can appreciate if a user creates an Example that works and then (for whatever reason) this doesn't work for you, its a problem at your end e.g. implementation of the code.Note: If you search the Forum for RecFileListToArray() you will find quite a few Examples of Melba23's code being implemented. Trust me! UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
gr1fter Posted February 24, 2011 Author Share Posted February 24, 2011 I did try searching for examples but all the search responses usually point to just the UDF. In its basic form i just did this: Global $sInclude_List,$iReturn,$iRecur,$iSort,$iReturnPath,$sExclude_List $sInitialPath = "C:\Documents and Settings" _RecFileListToArray($sInitialPath, $sInclude_List = "*", $iReturn = 2, $iRecur = 1, $iSort = 0, $iReturnPath = 1, $sExclude_List = "") and that runs and does not display anything. So i have a feeling that I am way off point. Link to comment Share on other sites More sharing options...
guinness Posted February 24, 2011 Share Posted February 24, 2011 (edited) I would suggest looking in the Help File about Functions and _ArrayDisplay() #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include "_RecFileListToArray.au3" ; Make sure this is in the same Directory as where you save this Snippet! #include <Array.au3> Global $SearchDirectory = "C:\Documents and Settings\" Global $ArrayReturned = _RecFileListToArray($SearchDirectory, "*", 2, 1, 0, 1, "") _ArrayDisplay($ArrayReturned) This will work...I see Melba23 is posting... Edited February 24, 2011 by guinness UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 24, 2011 Moderators Share Posted February 24, 2011 gr1fter,Sorry to be blunt, but that snippet shows that you do not have the faintest idea of AutoIt syntax and should certainly not be using it for anything dangerous like deleting folders. The snippet is wrong on so many levels it is hard to know where to begin - but here are some:- 1. You do not declare function parameters - as parameters they are automatically declared.- 2. You only put the values of the parameters into the function call - the names are use dwithin the function itself.- 3. It hardly surprising that nothing is displayed - where have you asked AutoIt to display anything? It cannot read your mind, you have to tell it what to do!Nothing personal in all that - but I strongly recommend reading the Help file (at least the first few sections - Using AutoIt, Tutorials and the first couple of References) will help you enormously. You should also look at the excellent tutorials that you will find here and here - you will find other tutorials in the Wiki (the link is at the top of the page). it will make your scripting life much less frustrating, believe me. Right, from the one line that is correct, I see that you are trying to list the folder on the "C:\Documents and Settings" path. You do it like this:; Include the Array library just so we can see the result #include <Array.au3> ; Include the UDF - if we want to use it we need it in here! #include <RecFileListToArray.au3> ; Create an array to hold the return list from the UDF $aFolderList = _RecFileListToArray("C:\Documents and Settings", "*", 2, 1, 0, 2) ; All I changed from your list is the ReturnPath parameter - if you are going to delete them you will need their full paths ; Display the results _ArrayDisplay($aFolderList)Now you have your list of folders, you can loop through them, determine which contain "Test" usiing StringInStr and then delete them using DirRemove.Come back if you run into more problems. Or ask guinness as I see he has already posted a solution which is pretty near identical! 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...
gr1fter Posted February 24, 2011 Author Share Posted February 24, 2011 Thanks for the help guys. I admit that I am not an expert in AutoIT, but I have wrote applications and code, I just am not familiar with UDFs and reading what other people have coded. I really appreciate you giving me some examples and pushing me in the right directions. Arrays have always been a trouble for me. Link to comment Share on other sites More sharing options...
antonioj84 Posted September 10, 2015 Share Posted September 10, 2015 (edited) I am stuck right there can you clarify this " I am trying to delete a folderif you are going to delete them you will need their full paths ; Include the Array library just so we can see the result #include <Array.au3> ; Include the UDF - if we want to use it we need it in here! #include <RecFileListToArray.au3> ; Create an array to hold the return list from the UDF $aFolderList = _RecFileListToArray("C:\Test1\Test2", "*", 2, 1, 0, 2) ; All I changed from your list is the ReturnPath parameter - if you are going to delete them you will need their full paths ; Display the results _ArrayDisplay($aFolderList)RemoveDR($aFolderlist[$i],1) ; does not work Edited September 10, 2015 by antonioj84 Link to comment Share on other sites More sharing options...
BrewManNH Posted September 11, 2015 Share Posted September 11, 2015 Did you try it the right way? DirRemove($aFolderlist[$i],1)Also, this thread is over 4 1/2 years old, and the function _RecFileListToArray is now in the File.au3 include as _FileListToArrayRec(). If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
antonioj84 Posted September 11, 2015 Share Posted September 11, 2015 (edited) I found this code orginally from SlimShady and I modify it, works like a charm. Hope it can helps someone. include<File.au3> local $folder1 = "C:\Test1\Test2\" ; this will delete anything after Test2, including folder directory and so on.. _DirRemoveContents($folder1, "*.*") Func _DirRemoveContents($folder,$f) Local $list_of_contents, $status $list_of_contents = _FileListToArray($folder) If IsArray($list_of_contents) Then If StringRight($folder, 1) <> "\" Then $folder = $folder & "\" If @error = 1 Then Return 1 ; No Files\Folders Found For $a = 1 To $list_of_contents[0] FileSetAttrib($folder & "\" & $list_of_contents[$a], "-RASH") If StringInStr(FileGetAttrib($folder & $list_of_contents[$a]), "D") Then $status = DirRemove($folder & $list_of_contents[$a], 1) Else $status = FileDelete($folder & $list_of_contents[$a]) EndIf Next Else Return 2 ; Directory doesn't exists EndIf EndFunc ;==>_DirRemoveContents Edited September 11, 2015 by antonioj84 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