aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/doc/src/filelib.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stdlib/doc/src/filelib.xml')
-rw-r--r--lib/stdlib/doc/src/filelib.xml217
1 files changed, 217 insertions, 0 deletions
diff --git a/lib/stdlib/doc/src/filelib.xml b/lib/stdlib/doc/src/filelib.xml
new file mode 100644
index 0000000000..c1c4ca9350
--- /dev/null
+++ b/lib/stdlib/doc/src/filelib.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>2003</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ </legalnotice>
+
+ <title>filelib</title>
+ <prepared>Bjorn Gustavsson</prepared>
+ <responsible>Bjorn Gustavsson</responsible>
+ <docno>1</docno>
+ <approved>Kenneth Lundin</approved>
+ <checked></checked>
+ <date>03-01-21</date>
+ <rev>A</rev>
+ <file>filelib.sgml</file>
+ </header>
+ <module>filelib</module>
+ <modulesummary>File utilities, such as wildcard matching of filenames</modulesummary>
+ <description>
+ <p>This module contains utilities on a higher level than the <c>file</c>
+ module.</p>
+ </description>
+
+ <section>
+ <title>DATA TYPES</title>
+ <code type="none">
+filename() = string() | atom() | DeepList
+dirname() = filename()
+DeepList = [char() | atom() | DeepList]</code>
+ </section>
+
+ <funcs>
+ <func>
+ <name>ensure_dir(Name) -> ok | {error, Reason}</name>
+ <fsummary>Ensure that all parent directories for a file or directory exist.</fsummary>
+ <type>
+ <v>Name = filename() | dirname()</v>
+ <v>Reason = posix() -- see file(3)</v>
+ </type>
+ <desc>
+ <p>The <c>ensure_dir/1</c> function ensures that all parent
+ directories for the given file or directory name <c>Name</c>
+ exist, trying to create them if necessary.</p>
+ <p>Returns <c>ok</c> if all parent directories already exist
+ or could be created, or <c>{error, Reason}</c> if some parent
+ directory does not exist and could not be created for some
+ reason.</p>
+ </desc>
+ </func>
+ <func>
+ <name>file_size(Filename) -> integer()</name>
+ <fsummary>Return the size in bytes of the file.</fsummary>
+ <desc>
+ <p>The <c>file_size</c> function returns the size of the given file.</p>
+ </desc>
+ </func>
+ <func>
+ <name>fold_files(Dir, RegExp, Recursive, Fun, AccIn) -> AccOut </name>
+ <fsummary>Fold over all files matching a regular expression.</fsummary>
+ <type>
+ <v>Dir = dirname()</v>
+ <v>RegExp = regular_expression_string()</v>
+ <v>Recursive = true|false</v>
+ <v>Fun = fun(F, AccIn) -> AccOut</v>
+ <v>AccIn = AccOut = term()</v>
+ </type>
+ <desc>
+ <p>The <c>fold_files/5</c> function folds the function
+ <c>Fun</c> over all (regular) files <c>F</c> in the
+ directory <c>Dir</c> that match the regular expression <c>RegExp</c>
+ (see the <seealso marker="re">re</seealso> module for a description
+ of the allowed regular expressions).
+ If <c>Recursive</c> is true all sub-directories to <c>Dir</c>
+ are processed. The regular expression matching is done on just
+ the filename without the directory part.</p>
+ </desc>
+ </func>
+ <func>
+ <name>is_dir(Name) -> true | false</name>
+ <fsummary>Test whether Name refer to a directory or not</fsummary>
+ <type>
+ <v>Name = filename() | dirname()</v>
+ </type>
+ <desc>
+ <p>The <c>is_dir/1</c> function returns <c>true</c> if <c>Name</c>
+ refers to a directory, and <c>false</c> otherwise.</p>
+ </desc>
+ </func>
+ <func>
+ <name>is_file(Name) -> true | false</name>
+ <fsummary>Test whether Name refer to a file or directory.</fsummary>
+ <type>
+ <v>Name = filename() | dirname()</v>
+ </type>
+ <desc>
+ <p>The <c>is_file/1</c> function returns <c>true</c> if <c>Name</c>
+ refers to a file or a directory, and <c>false</c> otherwise.</p>
+ </desc>
+ </func>
+ <func>
+ <name>is_regular(Name) -> true | false</name>
+ <fsummary>Test whether Name refer to a (regular) file.</fsummary>
+ <type>
+ <v>Name = filename()</v>
+ </type>
+ <desc>
+ <p>The <c>is_regular/1</c> function returns <c>true</c> if <c>Name</c>
+ refers to a file (regular file), and <c>false</c> otherwise.</p>
+ </desc>
+ </func>
+ <func>
+ <name>last_modified(Name) -> {{Year,Month,Day},{Hour,Min,Sec}} | 0</name>
+ <fsummary>Return the local date and time when a file was last modified.</fsummary>
+ <type>
+ <v>Name = filename() | dirname()</v>
+ </type>
+ <desc>
+ <p>The <c>last_modified/1</c> function returns the date and time the
+ given file or directory was last modified, or 0 if the file
+ does not exist.</p>
+ </desc>
+ </func>
+ <func>
+ <name>wildcard(Wildcard) -> list()</name>
+ <fsummary>Match filenames using Unix-style wildcards.</fsummary>
+ <type>
+ <v>Wildcard = filename() | dirname()</v>
+ </type>
+ <desc>
+ <p>The <c>wildcard/1</c> function returns a list of all files
+ that match Unix-style wildcard-string <c>Wildcard</c>.</p>
+ <p>The wildcard string looks like an ordinary filename, except
+ that certain "wildcard characters" are interpreted in a special
+ way. The following characters are special:
+ </p>
+ <taglist>
+ <tag>?</tag>
+ <item>
+ <p>Matches one character.</p>
+ </item>
+ <tag>*</tag>
+ <item>
+ <p>Matches any number of characters up to the end of
+ the filename, the next dot, or the next slash.</p>
+ </item>
+ <tag>{Item,...}</tag>
+ <item>
+ <p>Alternation. Matches one of the alternatives.</p>
+ </item>
+ </taglist>
+ <p>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").
+ </p>
+ <p>Note that multiple "*" characters are allowed
+ (as in Unix wildcards, but opposed to Windows/DOS wildcards).
+ </p>
+ <p>Examples:</p>
+ <p>The following examples assume that the current directory is the
+ top of an Erlang/OTP installation.
+ </p>
+ <p>To find all <c>.beam</c> files in all applications, the following
+ line can be used:</p>
+ <code type="none">
+ filelib:wildcard("lib/*/ebin/*.beam"). </code>
+ <p>To find either <c>.erl</c> or <c>.hrl</c> in all applications
+ <c>src</c> directories, the following</p>
+ <code type="none">
+ filelib:wildcard("lib/*/src/*.?rl") </code>
+ <p>or the following line</p>
+ <code type="none">
+ filelib:wildcard("lib/*/src/*.{erl,hrl}") </code>
+ <p>can be used.</p>
+ <p>To find all <c>.hrl</c> files in either <c>src</c> or <c>include</c>
+ directories, use:</p>
+ <code type="none">
+ filelib:wildcard("lib/*/{src,include}/*.hrl"). </code>
+ <p>To find all <c>.erl</c> or <c>.hrl</c> files in either
+ <c>src</c> or <c>include</c> directories, use:</p>
+ <code type="none">
+ filelib:wildcard("lib/*/{src,include}/*.{erl,hrl}") </code>
+ </desc>
+ </func>
+ <func>
+ <name>wildcard(Wildcard, Cwd) -> list()</name>
+ <fsummary>Match filenames using Unix-style wildcards starting at a specified directory.</fsummary>
+ <type>
+ <v>Wildcard = filename() | dirname()</v>
+ <v>Cwd = dirname()</v>
+ </type>
+ <desc>
+ <p>The <c>wildcard/2</c> function works like <c>wildcard/1</c>,
+ except that instead of the actual working directory, <c>Cwd</c>
+ will be used.</p>
+ </desc>
+ </func>
+ </funcs>
+</erlref>
+
+