Directory Functions

The following functions can be used to examine directory contents or manipulate directories.

paths.dir(dname)

Return a table containing the files and directories in directory dname. This function return nil if the specified directory does not exists. For linux, this includes the . and .. directories.

paths.files(dname [, include])

Returns an iterator over the files and directories located in directory dname. For linux, this includes the . and .. directories. This can be used in for expression as shown below:

for f in paths.files(".") do
   print(f)
end

Optional argument include is either a function or a string used to determine which files are to be included. The function takes the filename as argument and should return true if the file is to be included. When a string is provided, the following function is used :

function(file) 
   return file:find(f) 
end

Files and directories of sub-folders aren't included.

paths.iterdirs(dname)

Returns an iterator over the directories located in directory dname. This can be used in for expression as shown below:

for dir in paths.iterdirs(".") do
   print(dir)
end

Directories of sub-folders, and the . and .. folders aren't included.

paths.iterfiles(dname)

Returns an iterator over the files (non-directories) located in directory dname. This can be used in for expression as shown below:

for file in paths.iterfiles(".") do
   print(file)
end

Files of sub-folders, and the . and .. folders aren't included.

paths.mkdir(s)

Create a directory. Returns true on success.

paths.rmdir(s)

Delete an empty directory. Returns true on success.

paths.rmall(s, y)

Recursively delete file or directory s and its contents. Argument y must be string "yes" Returns true on success.