Gambas Documentation - /lang/dir

# Dir

FilenameArray = Dir ( Directory AS String [ , Pattern AS String , Filter AS Integer ] ) AS String[]

Returns a string array that contains the names of files located in Directory that matched the Pattern and the Filter.

- The pattern can contain the same generic characters as the LIKE operator. If no pattern is specified, any file name is returned.

- The filter specifies what kind of files will be returned, by specifying one, or a combination of the file type constants. If Filter is not specified, then all files and directories are returned.

The file names returned are relative to the directory searched. They do not contain the path to the searched directory.

### Examples

    ' Print the png image files in a directory, in alphabetical order.

    SUB PrintDirectory(Directory AS String)

      DIM File AS String

      FOR EACH File IN Dir(Directory, "*.png").Sort()
        PRINT File
      NEXT

    END

    ' Print all non-hidden files in the user home directory.

    DIM fileName AS String

    FOR EACH fileName IN Dir(User.Home, "[^.]*")
      PRINT fileName
    NEXT

    ' Print png and jpeg images in the user home directory.

    DIM Directory AS String
    DIM Files AS String[]
    DIM FileName AS String

    Directory = System.User.Home
    Files = Dir(Directory, "*.png")
    Files.Insert(Dir(Directory, "*.jpg"))
    Files.Insert(Dir(Directory, "*.jpeg"))

    FOR EACH FileName IN Files
      PRINT FileName
    NEXT

    ' Prints only files in the user home directory.

    DIM fileName AS String

    FOR EACH fileName IN Dir(User.Home, "*", gb.File)
      PRINT fileName
    NEXT

    ' Prints only sub directories in the user home directory.

    DIM directoryName AS String

    FOR EACH directoryName IN Dir(User.Home, "*", gb.Directory)
      PRINT directoryName
    NEXT

    ' Prints non-hidden sub directories in the user home directory.

    DIM directoryName AS String

    FOR EACH directoryName IN Dir(User.Home, "[^.]*", gb.Directory)
      PRINT directoryName
    NEXT

    ' List system devices.

    DIM deviceName AS String

    FOR EACH deviceName IN Dir("/dev", "*", gb.Device)
      PRINT deviceName
    NEXT

### See also

- File & Directory Functions

- File & Directory Paths