Sign in to follow this  
Followers 0
PC.MAX

Searching For Directories

7 posts in this topic

how can i add the directories found in one directory to an array?

like i have many directories in "C:\dir\" and i want to get all the names of the directories found in it

Share this post


Link to post
Share on other sites



check out filefindnextfile

$search = FileFindFirstFile("*.*")  

; Check if the search was successful
If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search) 
    If @error Then ExitLoop
    
    MsgBox(4096, "File:", $file)
WEnd

; Close the search handle
FileClose($search)

Share this post


Link to post
Share on other sites

Also look at FileGetAttrib()


[u]Helpful tips:[/u]If you want better answers to your questions, take the time to reproduce your issue in a small "stand alone" example script whenever possible. Also, make sure you tell us 1) what you tried, 2) what you expected to happen, and 3) what happened instead.[u]Useful links:[/u]BrettF's update to LxP's "How to AutoIt" pdfValuater's Autoit 1-2-3 Download page for the latest versions of Autoit and SciTE[quote]<glyph> For example - if you came in here asking "how do I use a jackhammer" we might ask "why do you need to use a jackhammer"<glyph> If the answer to the latter question is "to knock my grandmother's head off to let out the evil spirits that gave her cancer", then maybe the problem is actually unrelated to jackhammers[/quote]

Share this post


Link to post
Share on other sites

and then how can i put these values in an array?

Share this post


Link to post
Share on other sites

and then how can i put these values in an array?

Maybe that:

$search = FileFindFirstFile("*.*")  
$results=""

; Check if the search was successful
If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search) 
    If @error Then ExitLoop
    If StringInStr ($file,".")=0 Then $results=$results&$file&"|"
WEnd

; Close the search handle
FileClose($search)
$results=StringSplit ($results,"|"); Retrieves an array. First value $results[0] is number of folders.

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

I'd do it like this:

#include <Array.au3>
Dim $aryFolder[1]
$aryFolder[0]=0
$count = 0

$search = FileFindFirstFile("C:\dir\*.*")  
; Check if the search was successful
If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    If FileGetAttrib($file) = "D" Then
        $count = $count + 1
        $aryFolder[0] = $count
        _ArrayAdd($aryFolder,$file)
    EndIf
WEnd

; Close the search handle
FileClose($search)

Edit: tested after I posted... looking into my errors now :think:

Edit 2: Fixed it

#include <Array.au3>
Dim $aryFolder[1]
$aryFolder[0] = 0
$count = 0

$search = FileFindFirstFile("C:\*.*")
; Check if the search was successful
If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    If FileGetAttrib("C:\" &  $file) = "D" Then
        $count = $count + 1
        $aryFolder[0] = $count
        _ArrayAdd($aryFolder, $file)
    EndIf   
WEnd
; Close the search handle
FileClose($search)
_ArrayDisplay($aryFolder, "Folders")
Edited by SpookMeister

[u]Helpful tips:[/u]If you want better answers to your questions, take the time to reproduce your issue in a small "stand alone" example script whenever possible. Also, make sure you tell us 1) what you tried, 2) what you expected to happen, and 3) what happened instead.[u]Useful links:[/u]BrettF's update to LxP's "How to AutoIt" pdfValuater's Autoit 1-2-3 Download page for the latest versions of Autoit and SciTE[quote]<glyph> For example - if you came in here asking "how do I use a jackhammer" we might ask "why do you need to use a jackhammer"<glyph> If the answer to the latter question is "to knock my grandmother's head off to let out the evil spirits that gave her cancer", then maybe the problem is actually unrelated to jackhammers[/quote]

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