Fs
File I/O is provided by simple wrappers around standard POSIX functions. All the methods have asynchronous and synchronous forms.
The asynchronous form always take a completion callback as its last argument. The arguments passed to the completion callback depend on the method, but the first argument is always reserved for an exception.
If the operation was completed successfully, then the first argument will be null.
When using the synchronous form any exceptions are immediately thrown. You can use try/catch to handle exceptions or allow them to bubble up.
Static Members
constants: FsConstantsAn object containing commonly used constants for file system operations.
F_OK: IntA mode flag for access and accessSync methods:
File is visible to the calling process. This is useful for determining if a file exists, but says nothing about rwx permissions.
R_OK: IntA mode flag for access and accessSync methods:
File can be read by the calling process.
W_OK: IntA mode flag for access and accessSync methods:
File can be written by the calling process.
X_OK: IntA mode flag for access and accessSync methods:
File can be executed by the calling process. This has no effect on Windows.
Asynchronous rename(2).
| Name | Type |
|---|---|
oldPath |
FsPath |
newPath |
FsPath |
callback |
Function |
Synchronous rename(2).
| Name | Type |
|---|---|
oldPath |
FsPath |
newPath |
FsPath |
Asynchronous ftruncate(2).
| Name | Type |
|---|---|
fd |
Int |
len |
Int |
callback |
Function |
Synchronous ftruncate(2).
| Name | Type |
|---|---|
fd |
Int |
len |
Int |
Asynchronous truncate(2).
| Name | Type |
|---|---|
path |
FsPath |
len |
Int |
callback |
Function |
Synchronous truncate(2).
| Name | Type |
|---|---|
path |
FsPath |
len |
Int |
Asynchronous chown(2).
| Name | Type |
|---|---|
path |
FsPath |
uid |
Int |
gid |
Int |
callback |
Function |
Synchronous chown(2).
| Name | Type |
|---|---|
path |
FsPath |
uid |
Int |
gid |
Int |
Asynchronous fchown(2).
| Name | Type |
|---|---|
fd |
Int |
uid |
Int |
gid |
Int |
callback |
Function |
Synchronous fchown(2).
| Name | Type |
|---|---|
fd |
Int |
uid |
Int |
gid |
Int |
Asynchronous lchown(2).
| Name | Type |
|---|---|
path |
FsPath |
uid |
Int |
gid |
Int |
callback |
Function |
Synchronous lchown(2).
| Name | Type |
|---|---|
path |
FsPath |
uid |
Int |
gid |
Int |
Asynchronous chmod(2).
| Name | Type |
|---|---|
path |
FsPath |
mode |
FsMode |
callback |
Function |
Synchronous chmod(2).
| Name | Type |
|---|---|
path |
FsPath |
mode |
FsMode |
Asynchronous fchmod(2).
| Name | Type |
|---|---|
fd |
Int |
mode |
FsMode |
callback |
Function |
Synchronous fchmod(2).
| Name | Type |
|---|---|
fd |
Int |
mode |
FsMode |
Asynchronous lchmod(2). Only available on Mac OS X.
| Name | Type |
|---|---|
path |
FsPath |
mode |
FsMode |
callback |
Function |
Synchronous lchmod(2).
| Name | Type |
|---|---|
path |
FsPath |
mode |
FsMode |
Asynchronous stat(2).
| Name | Type |
|---|---|
path |
FsPath |
callback |
Function |
Asynchronous lstat(2).
lstat() is identical to stat(), except that if path is a symbolic link, then the link itself is stat-ed, not the file that it refers to.
| Name | Type |
|---|---|
path |
FsPath |
callback |
Function |
Asynchronous fstat(2).
fstat() is identical to stat(), except that the file to be stat-ed is specified by the file descriptor fd.
| Name | Type |
|---|---|
fd |
Int |
callback |
Function |
statSync(path: FsPath): js.node.fs.StatsSynchronous stat(2).
| Name | Type |
|---|---|
path |
FsPath |
| Returns |
|---|
| js.node.fs.Stats |
lstatSync(path: FsPath): js.node.fs.StatsSynchronous lstat(2).
| Name | Type |
|---|---|
path |
FsPath |
| Returns |
|---|
| js.node.fs.Stats |
fstatSync(fd: Int): js.node.fs.StatsSynchronous fstat(2).
| Name | Type |
|---|---|
fd |
Int |
| Returns |
|---|
| js.node.fs.Stats |
Asynchronous link(2).
| Name | Type |
|---|---|
srcpath |
FsPath |
dstpath |
FsPath |
callback |
Function |
Synchronous link(2).
| Name | Type |
|---|---|
srcpath |
FsPath |
dstpath |
FsPath |
symlink(srcpath: FsPath, dstpath: FsPath, type: SymlinkType, callback: Function): VoidAsynchronous symlink(2).
The type argument can be set to 'dir', 'file', or 'junction' (default is 'file')
and is only available on Windows (ignored on other platforms). Note that Windows junction
points require the destination path to be absolute. When using 'junction', the destination
argument will automatically be normalized to absolute path.
| Name | Type |
|---|---|
srcpath |
FsPath |
dstpath |
FsPath |
type |
SymlinkType |
callback |
Function |
symlinkSync(srcpath: FsPath, dstpath: FsPath, type: SymlinkType): VoidSynchronous symlink(2).
| Name | Type |
|---|---|
srcpath |
FsPath |
dstpath |
FsPath |
type |
SymlinkType |
Asynchronous readlink(2).
| Name | Type |
|---|---|
path |
FsPath |
callback |
Function |
Synchronous readlink(2). Returns the symbolic link's string value.
| Name | Type |
|---|---|
path |
FsPath |
| Returns |
|---|
| String |
realpath(path: FsPath, cache: haxe.DynamicAccess<String>, callback: Function): VoidAsynchronous realpath(2).
The callback gets two arguments (err, resolvedPath).
May use process.cwd to resolve relative paths.
cache is an object literal of mapped paths that can be used to force a specific path resolution
or avoid additional stat calls for known real paths.
| Name | Type |
|---|---|
path |
FsPath |
cache |
haxe.DynamicAccess<String> |
callback |
Function |
realpathSync(path: FsPath, cache: haxe.DynamicAccess<String>): StringSynchronous realpath(2). Returns the resolved path.
| Name | Type |
|---|---|
path |
FsPath |
cache |
haxe.DynamicAccess<String> |
| Returns |
|---|
| String |
Asynchronous unlink(2).
| Name | Type |
|---|---|
path |
FsPath |
callback |
Function |
Synchronous unlink(2).
| Name | Type |
|---|---|
path |
FsPath |
rmdir(path: FsPath, options: FsRmdirOptions, callback: Function): VoidAsynchronous rmdir(2).
| Name | Type |
|---|---|
path |
FsPath |
options |
FsRmdirOptions |
callback |
Function |
rmdirSync(path: FsPath, ?options: Null<FsRmdirOptions>): VoidSynchronous rmdir(2).
| Name | Type | Default |
|---|---|---|
path |
FsPath | |
options |
Null<FsRmdirOptions> | (optional) |
Asynchronous mkdir(2).
mode defaults to 0777.
| Name | Type |
|---|---|
path |
FsPath |
mode |
FsMode |
callback |
Function |
Synchronous mkdir(2).
| Name | Type | Default |
|---|---|---|
path |
FsPath | |
mode |
Null<FsMode> | (optional) |
Creates a unique temporary directory.
Generates six random characters to be appended behind a required prefix to create a unique temporary directory.
The created folder path is passed as a string to the callback's second parameter.
| Name | Type |
|---|---|
prefix |
String |
callback |
Function |
The synchronous version of mkdtemp.
Returns the created folder path.
| Name | Type |
|---|---|
template |
String |
| Returns |
|---|
| String |
Asynchronous readdir(3). Reads the contents of a directory.
The callback gets two arguments (err, files) where files is an array of the names of the files in the directory excluding '.' and '..'.
| Name | Type |
|---|---|
path |
FsPath |
callback |
Function |
Synchronous readdir(3). Returns an array of filenames excluding '.' and '..'.
| Name | Type |
|---|---|
path |
FsPath |
| Returns |
|---|
| Array<String> |
Asynchronous close(2).
| Name | Type |
|---|---|
fd |
Int |
callback |
Function |
Synchronous close(2).
| Name | Type |
|---|---|
fd |
Int |
open(path: FsPath, flags: FsOpenFlag, mode: FsMode, callback: Function): VoidAsynchronous file open. See open(2).
See FsOpenFlag for description of possible flags.
mode sets the file mode (permission and sticky bits), but only if the file was created.
It defaults to 0666, readable and writeable.
The callback gets two arguments (err, fd).
| Name | Type |
|---|---|
path |
FsPath |
flags |
FsOpenFlag |
mode |
FsMode |
callback |
Function |
openSync(path: FsPath, flags: FsOpenFlag, mode: FsMode): IntSynchronous version of open().
| Name | Type |
|---|---|
path |
FsPath |
flags |
FsOpenFlag |
mode |
FsMode |
| Returns |
|---|
| Int |
Change file timestamps of the file referenced by the supplied path.
| Name | Type |
|---|---|
path |
FsPath |
atime |
Date |
mtime |
Date |
callback |
Function |
Change file timestamps of the file referenced by the supplied path.
| Name | Type |
|---|---|
path |
FsPath |
atime |
Date |
mtime |
Date |
Change the file timestamps of a file referenced by the supplied file descriptor.
| Name | Type |
|---|---|
fd |
Int |
atime |
Date |
mtime |
Date |
callback |
Function |
Change the file timestamps of a file referenced by the supplied file descriptor.
| Name | Type |
|---|---|
fd |
Int |
atime |
Date |
mtime |
Date |
Asynchronous fsync(2).
| Name | Type |
|---|---|
fd |
Int |
callback |
Function |
Synchronous fsync(2).
| Name | Type |
|---|---|
fd |
Int |
Documentation for the overloads with the buffer argument:
Write buffer to the file specified by fd.
offset and length determine the part of the buffer to be written.
position refers to the offset from the beginning of the file where this data should be written.
If position is null, the data will be written at the current position. See pwrite(2).
The callback will be given three arguments (err, written, buffer)
where written specifies how many bytes were written from buffer.
Documentation for the overloads with the data argument:
Write data to the file specified by fd. If data is not a Buffer instance then
the value will be coerced to a string.
position refers to the offset from the beginning of the file where this data should be written.
If omitted, the data will be written at the current position. See pwrite(2).
encoding is the expected string encoding.
The callback will receive the arguments (err, written, string) where written specifies how many bytes
the passed string required to be written. Note that bytes written is not the same as string characters.
See Buffer.byteLength.
Unlike when writing buffer, the entire string must be written. No substring may be specified.
This is because the byte offset of the resulting data may not be the same as the string offset.
Common notes:
Note that it is unsafe to use write multiple times on the same file without waiting for the callback.
For this scenario, createWriteStream is strongly recommended.
On Linux, positional writes don't work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to the end of the file.
| Name | Type |
|---|---|
fd |
Int |
buffer |
Buffer |
offset |
Int |
length |
Int |
position |
Int |
callback |
Function |
Synchronous version of write. Returns the number of bytes written.
| Name | Type | Default |
|---|---|---|
fd |
Int | |
buffer |
Buffer | |
offset |
Int | |
length |
Int | |
position |
Int | (optional) |
| Returns |
|---|
| Int |
read(fd: Int, buffer: Buffer, offset: Int, length: Int, position: Null<Int>, callback: Function): VoidRead data from the file specified by fd.
buffer is the buffer that the data will be written to.
offset is the offset in the buffer to start writing at.
length is an integer specifying the number of bytes to read.
position is an integer specifying where to begin reading from in the file.
If position is null, data will be read from the current file position.
The callback is given the three arguments, (err, bytesRead, buffer).
| Name | Type |
|---|---|
fd |
Int |
buffer |
Buffer |
offset |
Int |
length |
Int |
position |
Null<Int> |
callback |
Function |
Synchronous version of read. Returns the number of bytes read.
| Name | Type |
|---|---|
fd |
Int |
buffer |
Buffer |
offset |
Int |
length |
Int |
position |
Null<Int> |
| Returns |
|---|
| Int |
Asynchronously reads the entire contents of a file.
The callback is passed two arguments (err, data), where data is the contents of the file.
If no encoding is specified, then the raw buffer is returned.
If options is a string, then it specifies the encoding.
| Name | Type |
|---|---|
filename |
FsPath |
options |
AnonStruct |
callback |
Function |
Synchronous version of readFile. Returns the contents of the filename.
If the encoding option is specified then this function returns a string. Otherwise it returns a buffer.
| Name | Type |
|---|---|
filename |
FsPath |
options |
AnonStruct |
| Returns |
|---|
| String |
writeFile(filename: FsPath, data: String, options: haxe.extern.EitherType<String, FsWriteFileOptions>, callback: Function): VoidAsynchronously writes data to a file, replacing the file if it already exists.
data can be a string or a buffer.
The encoding option is ignored if data is a buffer. It defaults to 'utf8'.
| Name | Type |
|---|---|
filename |
FsPath |
data |
String |
options |
haxe.extern.EitherType<String, FsWriteFileOptions> |
callback |
Function |
writeFileSync(filename: FsPath, data: String, options: haxe.extern.EitherType<String, FsWriteFileOptions>): VoidThe synchronous version of writeFile.
| Name | Type |
|---|---|
filename |
FsPath |
data |
String |
options |
haxe.extern.EitherType<String, FsWriteFileOptions> |
appendFile(filename: FsPath, data: String, options: haxe.extern.EitherType<String, FsWriteFileOptions>, callback: Function): VoidAsynchronously append data to a file, creating the file if it not yet exists.
data can be a string or a buffer.
| Name | Type |
|---|---|
filename |
FsPath |
data |
String |
options |
haxe.extern.EitherType<String, FsWriteFileOptions> |
callback |
Function |
appendFileSync(filename: FsPath, data: String, options: haxe.extern.EitherType<String, FsWriteFileOptions>): VoidThe synchronous version of appendFile.
| Name | Type |
|---|---|
filename |
FsPath |
data |
String |
options |
haxe.extern.EitherType<String, FsWriteFileOptions> |
watchFile(filename: FsPath, options: FsWatchFileOptions, listener: Function): VoidUnstable. Use watch instead, if possible.
Watch for changes on filename.
The callback listener will be called each time the file is accessed.
The options if provided should be an object containing two members:
persistentindicates whether the process should continue to run as long as files are being watched.intervalindicates how often the target should be polled, in milliseconds. The default is { persistent: true, interval: 5007 }.
The listener gets two arguments: the current stat object and the previous stat object.
| Name | Type |
|---|---|
filename |
FsPath |
options |
FsWatchFileOptions |
listener |
Function |
Unstable. Use watch instead, if possible.
Stop watching for changes on filename.
If listener is specified, only that particular listener is removed.
Otherwise, all listeners are removed and you have effectively stopped watching filename.
Calling unwatchFile with a filename that is not being watched is a no-op, not an error.
| Name | Type | Default |
|---|---|---|
filename |
FsPath | |
listener |
Function | (optional) |
watch(filename: FsPath, listener: Function): js.node.fs.FSWatcherWatch for changes on filename, where filename is either a file or a directory.
persistent indicates whether the process should continue to run as long as files are being watched. Default is true.
The listener callback gets two arguments (event, filename). event is either 'rename' or 'change', and filename
is the name of the file which triggered the event.
| Name | Type |
|---|---|
filename |
FsPath |
listener |
Function |
| Returns |
|---|
| js.node.fs.FSWatcher |
Test whether or not the given path exists by checking with the file system.
Then call the callback argument with either true or false.
exists is an anachronism and exists only for historical reasons.
There should almost never be a reason to use it in your own code.
In particular, checking if a file exists before opening it is an anti-pattern that leaves you vulnerable to race conditions:
another process may remove the file between the calls to exists and open.
Just open the file and handle the error when it's not there.
| Name | Type |
|---|---|
path |
FsPath |
callback |
Function |
Synchronous version of exists.
| Name | Type |
|---|---|
path |
FsPath |
| Returns |
|---|
| Bool |
Tests a user's permissions for the file or directory specified by path.
The mode argument is an optional integer that specifies the accessibility checks to be performed.
The following constants define the possible values of mode. It is possible to create a mask consisting
of the bitwise OR of two or more values.
Fs.constants.F_OK - path is visible to the calling process. This is useful for determining if a file exists,
but says nothing about rwx permissions. Default if no mode is specified.
Fs.constants.R_OK - path can be read by the calling process.
Fs.constants.W_OK - path can be written by the calling process.
Fs.constants.X_OK - path can be executed by the calling process.
This has no effect on Windows (will behave like Fs.constants.F_OK).
The final argument, callback, is a callback function that is invoked with a possible error argument.
If any of the accessibility checks fail, the error argument will be populated.
| Name | Type |
|---|---|
path |
FsPath |
mode |
Int |
callback |
Function |
Synchronous version of access.
This throws if any accessibility checks fail, and does nothing otherwise.
| Name | Type | Default |
|---|---|---|
path |
FsPath | |
mode |
Int | (optional) |
createReadStream(path: FsPath, ?options: haxe.extern.EitherType<String, FsCreateReadStreamOptions>): js.node.fs.ReadStreamReturns a new ReadStream object (See Readable Stream).
options can include start and end values to read a range of bytes from the file instead of the entire file.
Both start and end are inclusive and start at 0.
The encoding can be 'utf8', 'ascii', or 'base64'.
If autoClose is false, then the file descriptor won't be closed, even if there's an error.
It is your responsiblity to close it and make sure there's no file descriptor leak.
If autoClose is set to true (default behavior), on error or end the file descriptor will be closed automatically.
| Name | Type | Default |
|---|---|---|
path |
FsPath | |
options |
haxe.extern.EitherType<String, FsCreateReadStreamOptions> | (optional) |
| Returns |
|---|
| js.node.fs.ReadStream |
createWriteStream(path: FsPath, ?options: Null<FsCreateWriteStreamOptions>): js.node.fs.WriteStreamReturns a new WriteStream object (See Writable Stream).
options may also include a start option to allow writing data at some position past the beginning of the file.
Modifying a file rather than replacing it may require a flags mode of r+ rather than the default mode w.
| Name | Type | Default |
|---|---|---|
path |
FsPath | |
options |
Null<FsCreateWriteStreamOptions> | (optional) |
| Returns |
|---|
| js.node.fs.WriteStream |
Metadata
| Name | Parameters |
|---|---|
:jsRequire |
"fs" |