Luther50 Posted April 5, 2009 Share Posted April 5, 2009 Is there a ready made function to count the files in directory? I have checked the help file and cannot find one listed. DirGetSize gives the total number of bytes of all the file combined. I am reading the names in a directory into an array. I would like to allocate an array with the number of files in the directory before I traverse the list. If this is not available, I can code it with FileFindFirstFile and loop with FileFindNextFile. Can some suggest a better solution for than this? An alternative is to redim the array as I go. Is there a more efficient method? Regards Luther50 There is ways more than one way to solve a problem... Link to comment Share on other sites More sharing options...
MrMitchell Posted April 5, 2009 Share Posted April 5, 2009 Check out _FileListToArray(). I think it is in File.au3 UDF Link to comment Share on other sites More sharing options...
KaFu Posted April 5, 2009 Share Posted April 5, 2009 DirGetSize() returns number of files if you set the extended flag to 1 $array = DirGetSize(@SystemDir,1) ConsoleWrite("Directory " & @SystemDir & " contains " & $array[1] & " files" & @crlf) Note that DirGetSize is not interruptable, for that use my UDF _DirGetSizeEx(), link in my signature. OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
sdaskalov Posted July 9, 2015 Share Posted July 9, 2015 Func GetFileCount($path,$ext, $Recurcive=False) Local $Count=0 Local $objFSO= ObjCreate("Scripting.FileSystemObject");~ Count files in current folder For $objFSO_File in $objFSO.GetFolder($path).Files if $objFSO.GetExtensionName($objFSO_File.Name) = $ext then $Count += 1 Next;~ Recursive all subfolders if $Recurcive then For $objFSO_SubFolder in $objFSO.GetFolder($path).Subfolders $Count += GetFileCount($objFSO_SubFolder.Path,$ext,$Recurcive) Next EndIf Return $CountEndFuncFunc GetSubTreeFileCount_ByWildCard($path,$WildCard="*.*",$Recurcive=False) Local $Count=0;~ Count files in current folder $search = FileFindFirstFile($path & "\" & $WildCard) If $search <> -1 Then While 1 $file = FileFindNextFile($search) If @error Then ExitLoop $Count+=1 WEnd EndIf FileClose($search);~ Recursive all subfolders if $Recurcive then Local $objFSO= ObjCreate("Scripting.FileSystemObject") Local $objFSO_Folder = $objFSO.GetFolder($path) Local $colFSO_SubFolders = $objFSO.GetFolder($path).Subfolders For $objFSO_File in $colFSO_SubFolders $Count += GetSubTreeFileCount_ByWildCard($objFSO_File.Path,$WildCard,$Recurcive) Next EndIf Return $CountEndFunc Link to comment Share on other sites More sharing options...
guinness Posted July 9, 2015 Share Posted July 9, 2015 Couple of things wrong with your post...You clearly don't know how to post code on the Forum. To post code select <> in the toolbar and paste there.You're a little late to the party, in that this is over 6 years ago. I doubt they need the answer anymore.Function already exists in the UDFs for recursively searching through a directory. Has done for two years now.I doubt you wrote that yourself, so this is blatant plagiarism. Unless you mark where you got it from.Congratulations, not a great start to the Forum. 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...
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