filelib(3)

MODULE
filelib - File utilities, such as wildcard matching of filenames

DESCRIPTION

This module contains utilities on a higher level than the file module.

EXPORTS

ensure_dir(Name) -> true

    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.

is_dir(Name) -> true | false

    Types
        Name = filename() | dirname()

    The is_dir/1 function returns true if Name refers to a directory, and false otherwise.

is_file(Name) -> true | false

    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.

wildcard(Wildcard) -> list()

    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:

        ?:  Matches one character.

        *:  Matches any number of characters up to the end of the filename, the next dot, or the next slash.

        {Item,...}:
            Alternation. Matches one of the alternatives.

    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.

AUTHOR
Bjorn Gustavsson - support@erlang.ericsson.se