- dir = os.opendir(path[, flags | nil[, name_filters]])
- filename[, info] = dir:next()
- for filename[, info] in dir:files() ...
- dir:close()
SYNOPSIS
DESCRIPTION
This group of functions allow reading the contents of a directory.
To scan a directory, open a directory handle first by calling os.opendir(). The parameter path selects the directory.
Each character in the string flags modifies the behaviour of the directory scan:
- 'I': Traversal functions return a second value, a table containing the result
of the rawio.stat() call.
As this is expensive, it is not active by default. - 'D': List directories, filtered by name_filters
- 'd': List directories, do NOT filter directories by name_filters
- 'F': List normal files
- 'S': List special files
- 'L': List symbolic links
- '.': Also list the special entries "." and ".."
- 'c': Filter is not case sensitive
- 'P': Return full path for each entry, not just the filename.
If neither 'D', 'd', 'F', 'S' nor 'L' is given, defaults to "DFSL".
name_filters can be a string or a list containing common wildcard filters (e.g. "*.txt")
After obtaining a handle, calling dir:next() returns one directory entry on each call, until the directory has been completely read. Then it returns nil.
Alternatively, using dir:files() can be used with a generic for-loop.
When done, it is good style to close the handle with dir:close(). Close happens automatically on garbage collection, but that takes an unknown amount of time, at which you might have already run out of file descriptors.
RETURN VALUE
os.opendir() returns a directory handle on success. On error, three values are returned: nil, a string describing the error (The result of the C library call strerror() on the errno code) and the errno number from the standard C library.