Iznogoud Posted April 11, 2007 Posted April 11, 2007 Hi, i am struggling to get a programm wich can tell me a number of total folders and subfolders in a specific directory. I have tried FileFindNextFile, but i can't figure it out. I have looked at some dos commands like DIR, Xcopy, FC, Tree, but they don't do the thing i want. Does someone know is someone already made a script like this or is there an easy way to make?
jvanegmond Posted April 11, 2007 Posted April 11, 2007 Maybe _FileListToArray will do what you want. github.com/jvanegmond
Iznogoud Posted April 11, 2007 Author Posted April 11, 2007 [offtopic] eeej, your image is Iznogoud VERY NICE ! ! [/offtopic] Ok, but this shows me all the info and i only want to know for an example that my C:\ drive has 10.356 folders. Nothing more. I will research the _FileListToArray anyway...
jvanegmond Posted April 11, 2007 Posted April 11, 2007 [offtopic] eeej, your image is Iznogoud VERY NICE ! ! [/offtopic] Ok, but this shows me all the info and i only want to know for an example that my C:\ drive has 10.356 folders. Nothing more. I will research the _FileListToArray anyway...Your name suddenly reminded me of the cartoon I used to watch when I was a lot younger.. Anyway, I sometimes use StringSplit to count the amount of substrings in a string. So why would you not do this: #include <File.au3> $Dir = _FileListToArray(@HomeDrive,"*",2) MsgBox(0, "You have this many folders in " & @HomeDrive, $Dir[0]) github.com/jvanegmond
Joon Posted April 11, 2007 Posted April 11, 2007 Try this; $folderName = "C:\Inetpub" $objWMIService = ObjGet("winmgmts:\\.\root\cimv2") $colSubfolders = $objWMIService.ExecQuery("Associators of {Win32_Directory.Name='" & $folderName & "'} " _ & "Where AssocClass = Win32_Subdirectory " _ & "ResultRole = PartComponent") MsgBox(0,'Number of folders',$colSubfolders.Count)
Iznogoud Posted April 11, 2007 Author Posted April 11, 2007 (edited) I adjusted an did a trial and error on the example script in the help file.#Include <File.au3> #Include <Array.au3> $FileList=_FileListToArray(@DesktopDir, "*", 2) If @Error=1 Then MsgBox (0,"","No Files\Folders Found.") Exit EndIf MsgBox("", "Test", $FileList[0])This works great, i just tested it and so far it works . I will test it multiple times untill i know for sure it works as i wanted,-edit-Hmmm, i see you edited your script and we got exactly the same. Thanks for so far and i also will look at the solution Joon gave us. Edited April 11, 2007 by Iznogoud
MrCreatoR Posted April 11, 2007 Posted April 11, 2007 See for function _DirListToArray() here, and use it like this:$FoldersCountArr = _DirListToArray($sDir) $FoldersCount = $FoldersCountArr[0] 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
jvanegmond Posted April 11, 2007 Posted April 11, 2007 See for function _DirListToArray() here, and use it like this: $FoldersCountArr = _DirListToArray($sDir) $FoldersCount = $FoldersCountArr[0]_FileListToArray also only returns directory's with an option.. github.com/jvanegmond
Iznogoud Posted April 11, 2007 Author Posted April 11, 2007 (edited) I see that _FileListToArray doesn't count the subfolders.I will check DirListToArray if that commands can check subfolders.-edit-I have made this code#Include <File.au3> #Include <Array.au3> $FoldersCountArr = _DirListToArray("D:\") $FoldersCount = $FoldersCountArr[0] MsgBox("", "Test", $FoldersCount) Func _DirListToArray($sPath) Local $i, $j, $rlist[1]=[0], $blist, $alist=_FileListToArray ($sPath, '*', 2) If IsArray ($alist) Then For $i=1 To $alist [0] _ArrayAdd ($rlist, $sPath & "\" & $alist [$i]) $blist = _DirListToArray ($sPath & "\" & $alist [$i]) If $blist[0]>0 Then For $j=1 To $blist [0] _ArrayAdd ($rlist, $blist [$j]) Next EndIf Next EndIf $rlist [0] = UBound ($rlist) - 1 Return $rlist EndFuncFor so far this works, but i keep testing Edited April 11, 2007 by Iznogoud
randallc Posted November 8, 2007 Posted November 8, 2007 Hi, _FilelistToArrayNew in my sig is only a tad faster, but has other options, and still needs testers.. Best, Randall ExcelCOM... AccessCom.. Word2... FileListToArrayNew...SearchMiner... Regexps...SQL...Explorer...Array2D.. _GUIListView...array problem...APITailRW
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