file
The file
module provides access to the local filesystem.
Paths
Path specifications in this API are platform-specific. This means that on
Windows paths are specified using the backslash path separator (\
), and on
Unix-like systems like Linux and OS X paths are specified using the forward
slash path separator (/
).
If your add-on uses literal Windows-style path specifications with this API, your add-on likely won't work when users run it on Unix-like systems. Likewise, if your add-on uses literal Unix-style path specifications, it won't work for users on Windows.
To ensure your add-on works for everyone, generate paths using the
join
function. Unfortunately
this API does not currently provide a way to obtain an absolute base path which
you could then use with join
. For now, you need to
require("chrome")
and use the
XPCOM directory service as described at
MDN.
Note that if you do decide to hardcode Windows-style paths, be sure to escape
backslashes in strings. For example, to specify the file at C:\Users\Myk
, you
need to use the string "C:\\Users\\Myk"
, not "C:\Users\Myk"
. You can read
more about escaping characters in strings at
MDN.
API Reference
Functions
basename(path)
Returns the last component of the given path. For example,
basename("/foo/bar/baz")
returns "baz"
. If the path has no components,
the empty string is returned.
The path of a file.
The last component of the given path.
dirname(path)
Returns the path of the directory containing the given file. If the file is at the top of the volume, the empty string is returned.
The path of a file.
The path of the directory containing the file.
exists(path)
Returns true if a file exists at the given path and false otherwise.
The path of a file.
True if the file exists and false otherwise.
join(...)
Takes a variable number of strings, joins them on the file system's path separator, and returns the result.
A variable number of strings to join. The first string must be an absolute path.
A single string formed by joining the strings on the file system's path separator.
list(path)
Returns an array of file names in the given directory.
The path of the directory.
An array of file names. Each is a basename, not a full path.
mkpath(path)
Makes a new directory named by the given path. Any subdirectories that do not
exist are also created. mkpath
can be called multiple times on the same
path.
The path to create.
open(path, mode)
Returns a stream providing access to the contents of a file.
The path of the file to open.
An optional string, each character of which describes a characteristic of the
returned stream. If the string contains "r"
, the file is opened in
read-only mode. "w"
opens the file in write-only mode. "b"
opens the
file in binary mode. If "b"
is not present, the file is opened in text
mode, and its contents are assumed to be UTF-8. If mode
is not given,
"r"
is assumed, and the file is opened in read-only text mode.
If the file is opened in text read-only mode
, a TextReader
is returned,
and if text write-only mode, a TextWriter
is returned. See
text-streams
for information on
these text stream objects. If the file is opened in binary read-only mode
,
a ByteReader
is returned, and if binary write-only mode, a ByteWriter
is
returned. See
byte-streams
for more
information on these byte stream objects. Opened files should always be
closed after use by calling close
on the returned stream.
read(path, mode)
Opens a file and returns a string containing its entire contents.
The path of the file to read.
An optional string, each character of which describes a characteristic of the
returned stream. If the string contains "b"
, the contents will be returned
in binary mode. If "b"
is not present or mode
is not given, the file
contents will be returned in text mode.
A string containing the file's entire contents.
remove(path)
Removes a file from the file system. To remove directories, use rmdir
.
The path of the file to remove.
rmdir(path)
Removes a directory from the file system. If the directory is not empty, an exception is thrown.
The path of the directory to remove.