Filesystem Module

    The implementation tries to follow the CommonJSspecification where possible.

    The directory functions below shouldn’t use the current working directory of the server like . or ./test.You will not be able to tell whether the environment the server is running in will permit directory listing,reading or writing of files.

    You should either base your directories with getTempPath(), or as a Foxx service use themodule.context.basePath.

    checks if a file of any type or directory existsfs.exists(path)

    Returns true if a file (of any type) or a directory exists at a givenpath. If the file is a broken symbolic link, returns false.


    tests if path is a filefs.isFile(path)

    Returns true if the path points to a file.


    tests if path is a directoryfs.isDirectory(path)

    Returns true if the path points to a directory.


    gets the size of a filefs.size(path)

    Returns the size of the file specified by path.


    gets the last modification time of a filefs.mtime(filename)

    Returns the last modification date of the specified file. The date isreturned as a Unix timestamp (number of seconds elapsed since January 1 1970).



    If you want to combine two paths you can use fs.pathSeparator instead of / or \.


    fs.join(path, filename)

    The function returns the combination of the path and filename, e.g.fs.join('folder', 'file.ext') would return folder/file.ext.


    returns the name for a (new) temporary filefs.getTempFile(directory, createFile)

    Returns the name for a new temporary file in directory directory.If createFile is true, an empty file will be created so no otherprocess can create a file of the same name.

    Note: The directory directory must exist.


    returns the temporary directoryfs.getTempPath()

    Returns the absolute path of the temporary directory


    makes a given path absolutefs.makeAbsolute(path)

    sets file permissions of specified files (non windows only)fs.chmod(path, mode)

    where is a string with a leading zero matching the OCTAL-MODE as explainedin *nix man chmod.

    Returns true on success.


    returns the directory listingfs.list(path)

    The functions returns the names of all the files in a directory, inlexically sorted order. Throws an exception if the directory cannot betraversed (or path is not a directory).

    Note: this means that list(“x”) of a directory containing “a” and “b” wouldreturn [“a”, “b”], not [“x/a”, “x/b”].


    returns the directory treefs.listTree(path)

    The function returns an array that starts with the given path, and all ofthe paths relative to the given path, discovered by a depth first traversalof every directory in any visited directory, reporting but not traversingsymbolic links to directories. The first path is always "", the pathrelative to itself.


    creates a directoryfs.makeDirectory(path)

    Creates the directory specified by path.


    creates a directoryfs.makeDirectoryRecursive(path)

    Creates the directory hierarchy specified by path.


    removes a filefs.remove(filename)

    Removes the file filename at the given path. Throws an exception if thepath corresponds to anything that is not a file or a symbolic link. If“path” refers to a symbolic link, removes the symbolic link.


    removes an empty directoryfs.removeDirectory(path)

    Removes a directory if it is empty. Throws an exception if the path is notan empty directory.


    removes a directoryfs.removeDirectoryRecursive(path)

    Removes a directory with all subelements. Throws an exception if the pathis not a directory.


    reads in a

    Reads in a file and returns the content as string. Please note that thefile content must be encoded in UTF-8.


    reads in a file as base64fs.read64(filename)

    Reads in a file and returns the content as string. The file content isBase64 encoded.

    reads in a filefs.readBuffer(filename)


    fs.readFileSync(filename, encoding)

    Reads the contents of the file specified in filename. If encoding is specified,the file contents will be returned as a string. Supported encodings are:

    • utf8 or utf-8
    • base64
    • ucs2 or ucs-2
    • utf16le or utf16be
    • hex

    If no encoding is specified, the file contents will be returned in a Bufferobject.


    fs.write(filename, content)

    Writes the content into a file. Content can be a string or a Bufferobject. If the file already exists, it is truncated.


    fs.writeFileSync(filename, content)

    This is an alias for fs.write(filename, content).


    fs.append(filename, content)

    Writes the content into a file. Content can be a string or a Bufferobject. If the file already exists, the content is appended at theend.


    copies a directory structurefs.copyRecursive(source, destination)

    Copies source to destination.Exceptions will be thrown on:

    • Failure to copy the file
    • specifying a directory for destination when source is a file


    copies a file into a target filefs.copyFile(source, destination)

    Copies source to destination. If Destination is a directory, a fileof the same name will be created in that directory, else the copy will getthespecified filename.


    creates a symbolic link from a target in the place of linkpath.fs.linkFile(target, linkpath)

    In linkpath a symbolic link to target will be created.


    renames a filefs.move(source, destination)

    Moves source to destination. Failure to move the file, orspecifying a directory for destination when source is a file will throw anexception. Likewise, specifying a directory as source and destination willfail.


    unzips a filefs.unzipFile(filename, outpath, skipPaths, overwrite, password)

    Unzips the zip file specified by filename into the path specified byoutpath. Overwrites any existing target files if overwrite is setto true.

    Returns true if the file was unzipped successfully.

    zips a file

    Stores the files specified by files in the zip file filename. Ifthe file filename already exists, an error is thrown. The list of inputfiles files must be given as a list of absolute filenames. If chdir isnot empty, the chdir prefix will be stripped from the filename in thezip file, so when it is unzipped filenames will be relative.Specifying a password is optional.

    Returns true if the file was zipped successfully.