This module contains utilities on a higher level than the file
module.
Types:
Name = filename() | dirname()
The ensure_dir/1
functions checks that all parent directories
for the given file or directory name exist, creating them if not.
file_size(Filename) -> integer()
The file_size
function returns the size of the given file.
fold_files(Dir, RegExp, Recursive, Fun, AccIn) -> AccOut
Types:
Dir = dirname()
RegExp = regexp()
Recursive = true|false
Fun = fun(F, AccIn) -> AccOut
AccIn = AccOut = term()
The fold_files/5
function folds the function
Fun
over all (regular) files F
in the
directory Dir
that match the regular expression RegExp
.
If Recursive
is true all sub-directories to Dir
are processed. The match is tried on just the filename without
the directory part.
Types:
Name = filename() | dirname()
The is_dir/1
function returns true
if Name
refers to a directory, and false
otherwise.
Types:
Name = filename() | dirname()
The is_file/1
function returns true
if Name
refers to a file or a directory, and false
otherwise.
is_regular(Name) -> true | false
Types:
Name = filename()
The is_regular/1
function returns true
if Name
refers to a file (regular file), and false
otherwise.
last_modified(Name) -> {{Year,Month,Day},{Hour,Min,Sec}}
Types:
Name = filename() | dirname()
The last_modified/1
function returns the date and time the
given file or directory was last modified.
Types:
Wildcard = filename() | dirname()
The wildcard/1
function returns a list of all files
that match Unix-style wildcard-string Wildcard
.
The wildcard string looks like an ordinary filename, except that certain "wildcard characters" are interpreted in a special way. The following characters are special:
Other characters represent themselves. Only filenames that have exactly the same character in the same position will match. (Matching is case-sensitive; i.e. "a" will not match "A").
Note that multiple "*" characters are allowed (as in Unix wildcards, but opposed to Windows/DOS wildcards).
Examples:
The following examples assume that the current directory is the top of an Erlang/OTP installation.
To find all .beam
files in all applications, the following
line can be used:
filelib:wildcard("lib/*/ebin/*.beam").
To find either .erl
or .hrl
in all applications
src
directories, the following
filelib:wildcard("lib/*/src/*.?rl")
or the following line
filelib:wildcard("lib/*/src/*.{erl,hrl}")
can be used.
To find all .hrl
files in either src
or include
directories, use:
filelib:wildcard("lib/*/{src,include}/*.hrl").
To find all .erl
or .hrl
files in either
src
or include
directories, use:
filelib:wildcard("lib/*/{src,include}/*.{erl,hrl}")
wildcard(Wildcard, Cwd) -> list()
Types:
Wildcard = filename() | dirname()
Cwd = dirname()
The wildcard/2
function works like wildcard/1
,
except that instead of the actual working dirctory, Cwd
will be used.