# File Management
> ![icon-note.gif](public_sys-resources/icon-note.gif) **Note:**
> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```js
import fileio from '@ohos.fileio';
```
## Required Permissions
None
## Note
Before using this module to perform operations on a file or directory, obtain the absolute path of the file or directory. For details, see [getOrCreateLocalDir of the Context module](js-apis-Context.md).
Absolute file or directory path = Application directory + File name or directory name
For example, if the application directory obtained by using **getOrCreateLocalDir** is **dir** and the file name is **xxx.txt**, the absolute path of the file is as follows:
```js
let path = dir + "/xxx.txt";
```
The file descriptor is as follows:
```js
let fd = fileio.openSync(path);
```
## fileio.stat
stat(path: string): Promise<Stat>
Asynchronously obtains file information. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Stat](#stat)> | Promise used to return the file information obtained.|
- Example
```js
fileio.stat(path).then(function(stat){
console.info("getFileInfo successfully:"+ JSON.stringify(stat));
}).catch(function(err){
console.info("getFileInfo failed with error:"+ err);
});
```
## fileio.stat
stat(path:string, callback:AsyncCallback<Stat>): void
Asynchronously obtains file information. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| callback | AsyncCallback<[Stat](#stat)> | Yes| Callback invoked to return the file information obtained.|
- Example
```js
fileio.stat(path, function (err, stat) {
// Example code in Stat
});
```
## fileio.statSync
statSync(path:string): Stat
Synchronously obtains file information.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
- Return value
| Type| Description|
| -------- | -------- |
| [Stat](#stat) | File information obtained.|
- Example
```js
let stat = fileio.statSync(path);
// Example code in Stat
```
## fileio.opendir
opendir(path: string): Promise<Dir>
Asynchronously opens a directory. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to open.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Dir](#dir)> | A **Dir** instance corresponding to the directory.|
- Example
```js
fileio.opendir(path).then(function(dir){
console.info("opendir successfully:"+ JSON.stringify(dir));
}).catch(function(err){
console.info("opendir failed with error:"+ err);
});
```
## fileio.opendir
opendir(path: string, callback: AsyncCallback<Dir>): void
Asynchronously opens a directory. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to open.|
| callback | AsyncCallback<[Dir](#dir)> | Yes| Callback invoked when the directory is open asynchronously.|
- Example
```js
fileio.opendir(path, function (err, dir) {
// Example code in Dir struct
// Use read/readSync/close
});
```
## fileio.opendirSync
opendirSync(path: string): Dir
Synchronously opens a directory.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to open.|
- Return value
| Type| Description|
| -------- | -------- |
| [Dir](#dir) | A **Dir** instance corresponding to the directory.|
- Example
```js
let dir = fileio.opendirSync(path);
// Example code in Dir struct
// Use read/readSync/close.
```
## fileio.access
access(path: string, mode?: number): Promise<void>
Asynchronously checks whether the current process can access a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | number | No| Options for accessing the file. You can specify multiple options, separated with a bitwise OR operator (|). The default value is **0**.
The options are as follows:
- **0**: check whether the file exists.
- **1**: check whether the current process has the execute permission on the file.
- **2**: check whether the current process has the write permission on the file.
- **4**: check whether the current process has the read permission on the file.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.access(path).then(function() {
console.info("access successfully");
}).catch(function(err){
console.info("access failed with error:"+ err);
});
```
## fileio.access
access(path: String, mode?: number, callback: AsyncCallback<void>): void
Asynchronously checks whether the current process can access a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | number | No| Options for accessing the file. You can specify multiple options, separated with a bitwise OR operator (|). The default value is **0**.
The options are as follows:
- **0**: check whether the file exists.
- **1**: check whether the current process has the execute permission on the file.
- **2**: check whether the current process has the write permission on the file.
- **4**: check whether the current process has the read permission on the file.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file is asynchronously checked.|
- Example
```js
fileio.access(path, function (err) {
// Do something.
});
```
## fileio.accessSync
accessSync(path: string, mode?: number): void
Synchronously checks whether the current process can access the specified file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | number | No| Options for accessing the file. You can specify multiple options, separated with a bitwise OR operator (|). The default value is **0**.
The options are as follows:
- **0**: check whether the file exists.
- **1**: check whether the current process has the execute permission on the file.
- **2**: check whether the current process has the write permission on the file.
- **4**: check whether the current process has the read permission on the file.|
- Example
```js
try {
fileio.accessSync(path);
} catch(err) {
console.info("accessSync failed with error:"+ err);
}
```
## fileio.close7+
close(fd: number):Promise<void>
Asynchronously closes a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to close.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
let fd = fileio.openSync(path);
fileio.close(fd).then(function(){
console.info("close file successfully");
}).catch(function(err){
console.info("close file failed with error:"+ err);
});
```
## fileio.close7+
close(fd: number, callback:AsyncCallback<void>): void
Asynchronously closes a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to close.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file is closed asynchronously.|
- Example
```js
let fd = fileio.openSync(path);
fileio.close(fd, function (err) {
// Do something.
});
```
## fileio.closeSync
closeSync(fd: number): void
Synchronously closes a file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to close.|
- Example
```js
fileio.closeSync(fd);
```
## fileio.close7+
close(): Promise<void>
Asynchronously closes the stream. This method uses a promise to return the result.
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.close().then(function(){
console.info("close file stream successfully");
}).catch(function(err){
console.info("close file stream failed with error:"+ err);
});
```
## fileio.close7+
close(callback: AsyncCallback<void>): void
Asynchronously closes the stream. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<void> | Yes| Callback invoked when the stream is closed asynchronously.|
- Example
```js
fileio.close(function(err){
// Do something.
});
```
## fileio.copyFile
copyFile(src:string | number, dest:string | number, mode?:number):Promise<void>
Asynchronously copies a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | string \| number | Yes| Path or file descriptor of the file to copy.|
| dest | string \| number | Yes| Path or file descriptor of the new file.|
| mode | number | No| Option for overwriting the file of the same name in the destination path. The default value is **0**, which is the only value supported.
**0**: Completely overwrite the file with the same name and truncate the part that is not overwritten.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.copyFile(src, dest).then(function(){
console.info("copyFile successfully");
}).catch(function(err){
console.info("copyFile failed with error:"+ err);
});
```
## fileio.copyFile
copyFile(src:string | number, dest:string | number, mode?: number, callback: AsyncCallbak<void>): void
Asynchronously copies a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | string \| number | Yes| Path or file descriptor of the file to copy.|
| dest | string \| number | Yes| Path or file descriptor of the new file.|
| mode | number | No| Option for overwriting the file of the same name in the destination path. The default value is **0**, which is the only value supported.
**0**: Completely overwrite the file with the same name and truncate the part that is not overwritten.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file is copied asynchronously.|
- Example
```js
fileio.copyFile(src, dest, function (err) {
// Do something.
});
```
## fileio.copyFileSync
fileio.copyFileSync(src:string | number, dest:string | number, mode?:number): void
Synchronously copies a file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | string \| number | Yes| Path or file descriptor of the file to copy.|
| dest | string \| number | Yes| Path or file descriptor of the new file.|
| mode | number | No| Option for overwriting the file of the same name in the destination path. The default value is **0**, which is the only value supported.
**0**: Completely overwrite the file with the same name and truncate the part that is not overwritten.|
- Example
```js
fileio.copyFileSync(src, dest);
```
## fileio.mkdir
mkdir(path:string, mode?: number): Promise<void>
Asynchronously creates a directory. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to create.|
| mode | number | No| Permission on the directory to create. You can specify multiple permissions, separated using a bitwise OR operator (|). The default value is **0o775**.
- **0o775**: The owner has the read, write, and execute permissions, and other users have the read and execute permissions.
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.mkdir(path).then(function() {
console.info("mkdir successfully");
}).catch(function (error){
console.info("mkdir failed with error:"+ error);
});
```
## fileio.mkdir
mkdir(path:string, mode?:number, callback:AsyncCallbak<void>): void
Asynchronously creates a directory. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to create.|
| mode | number | No| Permission on the directory to create. You can specify multiple permissions, separated using a bitwise OR operator (|). The default value is **0o775**.
- **0o775**: The owner has the read, write, and execute permissions, and other users have the read and execute permissions.
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the directory is created asynchronously.|
- Example
```js
fileio.mkdir(path, function(err) {
if (!err) {
// Do something.
}
});
```
## fileio.mkdirSync
fileio.mkdirSync(path: string, mode?: number): void
Synchronously creates a directory.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to create.|
| mode | number | No| Permission on the directory to create. You can specify multiple permissions, separated using a bitwise OR operator (|). The default value is **0o775**.
- **0o775**: The owner has the read, write, and execute permissions, and other users have the read and execute permissions.
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
- Example
```js
fileio.mkdirSync(path);
```
## fileio.open7+
open(path: string, flags?: number, mode?: number): Promise<number>
Asynchronously opens a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| flags | number | No| Option for opening a file. You must specify one of the following options. By default, the file is opened in read-only mode.
- **0o0**: Open the file in read-only mode.
- **0o1**: Open the file in write-only mode.
- **0o2**: Open the file in read/write mode.
You can also specify the following options, separated using a bitwise OR operator (|). By default, no extra option is specified.
- **0o100**: If the file does not exist, create it. If you use this option, you must also specify **mode**.
- **0o200**: If **0o100** is added and the file already exists, throw an exception.
- **0o1000**: If the file exists and is open in write-only or read/write mode, truncate the file length to 0.
- **0o2000**: Open the file in append mode. New data will be appended to the file (added to the end of the file).
- **0o4000**: If **path** points to a named pipe (also known as a FIFO), block special file, or character special file, perform non-blocking operations on the open file and in subsequent I/Os.
- **0o200000**: If **path** points to a directory, throw an exception.
- **0o400000**: If **path** points to a symbolic link, throw an exception.
- **0o4010000**: Open the file in synchronous I/O mode.|
| mode | number | No| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|). The default value is **0o666**.
- **0o666**: The owner, user group, and other users have the read and write permissions on the file.
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<number> | Promise used to return the file descriptor of the file opened.|
- Example
```js
fileio.open(path, 0o1, 0o0200).then(function(number){
console.info("open file successfully");
}).catch(function(error){
console.info("open file failed with error:"+ err);
});
```
## fileio.open7+
open(path: string, flags: number, mode: number, callback: AsyncCallback<number>): void
Asynchronously opens a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| flags | number | Yes| Option for opening a file. You must specify one of the following options. By default, the file is opened in read-only mode.
- **0o0**: Open the file in read-only mode.
- **0o1**: Open the file in write-only mode.
- **0o2**: Open the file in read/write mode.
You can also specify the following options, separated using a bitwise OR operator (|). By default, no extra option is specified.
- **0o100**: If the file does not exist, create it. If you use this option, you must also specify **mode**.
- **0o200**: If **0o100** is added and the file already exists, throw an exception.
- **0o1000**: If the file exists and is open in write-only or read/write mode, truncate the file length to 0.
- **0o2000**: Open the file in append mode. New data will be appended to the file (added to the end of the file).
- **0o4000**: If **path** points to a named pipe (also known as a FIFO), block special file, or character special file, perform non-blocking operations on the open file and in subsequent I/Os.
- **0o200000**: If **path** points to a directory, throw an exception.
- **0o400000**: If **path** points to a symbolic link, throw an exception.
- **0o4010000**: Open the file in synchronous I/O mode.|
| mode | number | Yes| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|). The default value is **0o666**.
- **0o666**: The owner, user group, and other users have the read and write permissions on the file.
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
| callback | AsyncCallback <void> | Yes| Callback invoked when the file is open asynchronously.|
- Example
```js
fileio.open(path, 0, function(err, fd) {
// Do something.
});
```
## fileio.openSync
openSync(path:string, flags?:number, mode?:number): number
Synchronously opens a file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| flags | number | No| Option for opening a file. You must specify one of the following options. By default, the file is opened in read-only mode.
- **0o0**: Open the file in read-only mode.
- **0o1**: Open the file in write-only mode.
- **0o2**: Open the file in read/write mode.
You can also specify the following options, separated using a bitwise OR operator (|). By default, no extra option is specified.
- **0o100**: If the file does not exist, create it. If you use this option, you must also specify **mode**.
- **0o200**: If **0o100** is added and the file already exists, throw an exception.
- **0o1000**: If the file exists and is open in write-only or read/write mode, truncate the file length to 0.
- **0o2000**: Open the file in append mode. New data will be appended to the file (added to the end of the file).
- **0o4000**: If **path** points to a named pipe (also known as a FIFO), block special file, or character special file, perform non-blocking operations on the open file and in subsequent I/Os.
- **0o200000**: If **path** points to a directory, throw an exception.
- **0o400000**: If **path** points to a symbolic link, throw an exception.
- **0o4010000**: Open the file in synchronous I/O mode.|
| mode | number | No| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|). The default value is **0o666**.
- **0o666**: The owner, user group, and other users have the read and write permissions on the file.
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.
The file permissions of newly created files are affected by **umask**, which is set as the process starts. Currently, the modification of **umask** is not open.
- Return value
| Type| Description|
| -------- | -------- |
| number | File descriptor of the file opened.|
- Example
```js
let fd = fileio.openSync(path);
```
## fileio.read
read(fd: number, buffer: ArrayBuffer, options?: Object): Promise<Readout>
Asynchronously reads data from a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to read.|
| buffer | ArrayBuffer | Yes| Buffer used to store the file data read.|
| options | Object | No| The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to be read. The default value is the buffer length minus the offset.
- **position** (number): position of the data to be read in the file. By default, data is read from the current position.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Readout](#readout)> | Promise used to return the data read.|
- Example
```js
let fd = fileio.openSync(path, 0o2);
let buf = new ArrayBuffer(4096);
fileio.read(fd, buf).then(function(readout){
console.info("read file data successfully:"+ JSON.stringify(readout));
}).catch(function(error){
console.info("read file data failed with error:"+ error);
});
```
## fileio.read
read(fd: number, buffer: ArrayBuffer, options?: Object, callback: AsyncCallback<Readout>): void
Asynchronously reads data from a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to read.|
| buffer | ArrayBuffer | Yes| Buffer used to store the file data read.|
| options | Object | No| The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to be read. The default value is the buffer length minus the offset.
- **position** (number): position of the data to be read in the file. By default, data is read from the current position.|
| callback | AsyncCallback<[Readout](#readout)> | Yes| Callback invoked when the data is read asynchronously.|
- Example
```js
let fd = fileio.openSync(path, 0o2);
let buf = new ArrayBuffer(4096);
fileio.read(fd, buf, function (err, readOut) {
if (!err) {
console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)))
}
});
```
## fileio.readSync
readSync(fd: number, buffer: ArrayBuffer, options?: Object): number
Synchronously reads data from a file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to read.|
| buffer | ArrayBuffer | Yes| Buffer used to store the file data read.|
| options | Object | No| The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to be read. The default value is the buffer length minus the offset.
- **position** (number): position of the data to be read in the file. By default, data is read from the current position.|
- Return value
| Type| Description|
| -------- | -------- |
| number | Length of the data read.|
- Example
```js
let fd = fileio.openSync(path, 0o2);
let buf = new ArrayBuffer(4096);
let num = fileio.readSync(fd, buf);
```
## fileio.rmdir7+
rmdir(path: string): Promise<void>
Asynchronously deletes a directory. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to delete.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.rmdir(path).then(function() {
console.info("rmdir successfully");
}).catch(function(err){
console.info("rmdir failed with error:"+ err);
});
```
## fileio.rmdir7+
rmdir(path: string, callback:AsyncCallback<void>): void
Asynchronously deletes a directory. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to delete.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the directory is deleted asynchronously.|
- Example
```js
fileio.rmdir(path, function(err){
// Do something.
});
```
## fileio.rmdirSync
rmdirSync(path:string)
Synchronously deletes a directory.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the directory to delete.|
- Example
```js
fileio.rmdirSync(path);
```
## fileio.unlink
unlink(path:string): Promise<void>
Asynchronously deletes a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the file to delete.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.unlink(path).then(function(){
console.info("remove file successfully");
}).catch(function(error){
console.info("remove file failed with error:"+ error);
});
```
## fileio.unlink
unlink(path:string, callback:AsyncCallback<void>): void
Asynchronously deletes a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the file to delete.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file is deleted asynchronously.|
- Example
```js
fileio.unlink(path, function(err) {
if (!err) {
// Do something.
}
});
```
## fileio.unlinkSync
unlinkSync(path: string): void
Synchronously deletes a file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the file to delete.|
- Example
```js
fileio.unlinkSync(path);
```
## fileio.write
write(fd: number, buffer: ArrayBuffer | string, options?: Object): Promise<number>
Asynchronously writes data into a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to write.|
| buffer | ArrayBuffer \| string | Yes| Data to write. It can be a string or data from a buffer.|
| options | Object | No| The options are as follows:
- **offset** (number): position of the data to write in reference to the start address of the data. The default value is **0**.
- **length** (number): length of the data to write. The default value is the buffer length minus the offset.
- **position** (number): start position to write the data in the file. By default, data is written from the current position.
- **encoding** (string): format of the string to be encoded. The default value is **utf-8**, which is the only value supported.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<number> | Promise used to return the length of the data written in the file.|
- Example
```js
let fd = fileio.openSync(fpath, 0o100 | 0o2, 0o666);
fileio.write(fd, "hello, world").then(function(number){
console.info("write data to file successfully:"+ number);
}).catch(function(err){
console.info("write data to file failed with error:"+ err);
});
```
## fileio.write
write(fd:number, buffer:ArrayBuffer | string,options?:Object, callback:AsyncCallback<number>): void
Asynchronously writes data into a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to write.|
| buffer | ArrayBuffer \| string | Yes| Data to write. It can be a string or data from a buffer.|
| options | Object | No| The options are as follows:
- **offset** (number): position of the data to write in reference to the start address of the data. The default value is **0**.
- **length** (number): length of the data to write. The default value is the buffer length minus the offset.
- **position** (number): start position to write the data in the file. By default, data is written from the current position.
- **encoding** (string): format of the string to be encoded. The default value is **utf-8**, which is the only value supported.|
| callback | AsyncCallback<number> | Yes| Callback invoked when the data is written asynchronously.|
- Example
```js
let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
fileio.write(fd, "hello, world", function (err, bytesWritten) {
if (!err) {
console.log(bytesWritten)
}
});
```
## fileio.writeSync
writeSync(fd: number, buffer: ArrayBuffer | string, options?:Object): number
Synchronously writes data into a file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to write.|
| buffer | ArrayBuffer \| string | Yes| Data to write. It can be a string or data from a buffer.|
| options | Object | No| The options are as follows:
- **offset** (number): position of the data to write in reference to the start address of the data. The default value is **0**.
- **length** (number): length of the data to write. The default value is the buffer length minus the offset.
- **position** (number): start position to write the data in the file. By default, data is written from the current position.
- **encoding** (string): format of the string to be encoded. The default value is **utf-8**, which is the only value supported.|
- Return value
| Type| Description|
| -------- | -------- |
| number | Length of the data written in the file.|
- Example
```js
let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
let num = fileio.writeSync(fd, "hello, world");
```
## fileio.hash
hash(path: string, algorithm: string): Promise<string>
Asynchronously calculates the hash value of a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| algorithm | string | Yes| Algorithm used to calculate the hash value. The value can be **md5**, **sha1**, or **sha256**.**sha256** is recommended for security purposes.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<string> | Promise used to return the hash value of the file. The hash value is a hexadecimal string consisting of digits and uppercase letters.|
- Example
```js
fileio.hash(path, "sha256").then(function(str){
console.info("calculate file hash successfully:"+ str);
}).catch(function(error){
console.info("calculate file hash failed with error:"+ err);
});
```
## fileio.hash
hash(psth:string, algorithm:string, callback:AsyncCallback<string>): void
Asynchronously calculates the hash value of a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| algorithm | string | Yes| Algorithm used to calculate the hash value. The value can be **md5**, **sha1**, or **sha256**.**sha256** is recommended for security purposes.|
| callback | AsyncCallback<string> | Yes| Callback used to return the hash value. The hash value is a hexadecimal string consisting of digits and uppercase letters.|
- Example
```js
fileio.hash(fpath, "sha256", function(err, hashStr) {
if (!err) {
console.log(hashStr)
}
});
```
## fileio.chmod7+
chmod(path: string, mode: number):Promise<void>
Asynchronously changes the file permissions based on its path. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | number | Yes| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|).
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.chmod(path, mode).then(function() {
console.info("chmod successfully");
}).catch(function(err){
console.info("chmod failed with error:"+ err);
});
```
## fileio.chmod7+
chmod(path: string, mode: number, callback: AsyncCallback<void>): void
Asynchronously changes the file permissions based on its path. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | number | Yes| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|).
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file permissions are changed asynchronously.|
- Example
```js
fileio.chmod(path, mode, function (err) {
// Do something.
});
```
## fileio.chmodSync7+
chmodSync(path: string, mode: number): void
Synchronously changes the file permissions based on its path.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | number | Yes| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|).
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
- Example
```js
fileio.chmodSync(fpath, mode);
```
## fileio.fstat7+
fstat(fd: number): Promise<Stat>
Asynchronously obtains file status information based on the file descriptor. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Stat](#stat)> | Promise used to return the file status information.|
- Example
```js
fileio.fstat(fd).then(function(stat){
console.info("fstat successfully:"+ JSON.stringify(stat));
}).catch(function(err){
console.info("fstat failed with error:"+ err);
});
```
## fileio.fstat7+
fstat(fd: number, callback: AsyncCallback<Stat>): void
Asynchronously obtains file status information based on the file descriptor. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| callback | AsyncCallback<[Stat](#stat)> | Yes| Callback invoked when the file status information is obtained asynchronously.|
- Example
```js
let fd = fileio.openSync(path);
fileio.fstat(fd, function (err) {
// Do something.
});
```
## fileio.fstatSync7+
fstatSync(fd: number): Stat
Synchronously obtains file status information based on the file descriptor.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
- Return value
| Type| Description|
| -------- | -------- |
| [Stat](#stat) | File status information obtained.|
- Example
```js
let fd = fileio.openSync(path);
let stat = fileio.fstatSync(fd);
```
## fileio.ftruncate7+
ftruncate(fd: number, len: number): Promise<void>
Asynchronously truncates a file based on the file descriptor. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to truncate.|
| len | number | Yes| File length, in bytes, after truncation.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
let fd = fileio.openSync(path);
fileio.ftruncate(fd, 5).then(function(err) {
console.info("File truncated successfully");
}).catch(function(err){
console.info("Failed to truncate the file. Error:"+ err);
});
```
## fileio.ftruncate7+
ftruncate(fd: number, len: number, callback:AsyncCallback<void>): void
Asynchronously truncates a file based on the file descriptor. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to truncate.|
| len | number | Yes| File length, in bytes, after truncation.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file is truncated asynchronously.|
- Example
```js
fileio.ftruncate(fd, len, function(err){
// Do something.
});
```
## fileio.ftruncateSync7+
ftruncateSync(fd: number, len?: number): void
Synchronously truncates a file based on the file descriptor.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to truncate.|
| len | number | No| File length, in bytes, after truncation.|
- Example
```js
fileio.ftruncate(fd, len);
```
## fileio.truncate7+
truncate(path: string, len: number): Promise<void>
Asynchronously truncates a file based on its path. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the file to truncate.|
| len | number | Yes| File length, in bytes, after truncation.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.truncate(path, len).then(function(){
console.info("File truncated successfully");
}).catch(function(err){
console.info("Failed to truncate the file. Error:"+ err);
});
```
## fileio.truncate7+
truncate(path: string, len: number, callback:AsyncCallback<void>): void
Asynchronously truncates a file based on its path. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the file to truncate.|
| len | number | Yes| File length, in bytes, after truncation.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file is truncated asynchronously.|
- Example
```js
fileio.truncate(path, len, function(err){
// Do something.
});
```
## fileio.truncateSync7+
truncateSync(fpath: string, len?: number): void
Synchronously truncates a file based on the file path.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the file to truncate.|
| len | number | No| File length, in bytes, after truncation.|
- Example
```js
fileio.ftruncate(path, len);
```
## fileio.readText7+
readText(filePath: string, options?:Object): Promise<string>
Asynchronously reads the text of a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| filePath | string | Yes| Absolute path of the file to read.|
| options | Object | No| The options are as follows:
- **position** (number): position of the data to read in the file. By default, data is read from the current position.
- **length** (number): length of the data to be read. The default value is the buffer length minus the offset.
- **encoding** (string): format of the data (string) to be encoded. The default value is **utf-8**, which is the only value supported.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<string> | Promise used to return the content of the file read.|
- Example
```js
fileio.readText(path).then(function(str) {
console.info("readText successfully:"+ str);
}).catch(function(err){
console.info("readText failed with error:"+ err);
});
```
## fileio.readText7+
readText(filePath: string, options?:Object, callback:AsyncCallback<string>): void
Asynchronously reads the text of a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| filePath | string | Yes| Absolute path of the file to read.|
| options | Object | No| The options are as follows:
- **position** (number): position of the data to read in the file. By default, data is read from the current position.
- **length** (number): length of the data to be read. The default value is the buffer length minus the offset.
- **encoding** (string): format of the data (string) to be encoded. The default value is **utf-8**, which is the only value supported.|
| callback | AsyncCallback<string> | Yes| Callback invoked when the file is read asynchronously.|
- Example
```js
fileio.readText(path, function(err, str){
// Do something.
});
```
## fileio.readTextSync7+
readTextSync(filePath: string, options?:Object): string
Synchronously reads the text of a file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| filePath | string | Yes| Absolute path of the file to read.|
| options | Object | No| The options are as follows:
- **position** (number): position of the data to read in the file. By default, data is read from the current position.
- **length** (number): length of the data to be read. The default value is the buffer length minus the offset.
- **encoding** (string): format of the data (string) to be encoded. The default value is **utf-8**, which is the only value supported.|
- Return value
| Type| Description|
| -------- | -------- |
| string| Content of the file read.|
- Example
```js
let str = fileio.readTextSync(path, {position: 1, length: 3});
```
## fileio.lstat7+
lstat(path: string): Promise<Stat>
Asynchronously obtains link status information. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file, pointing to the link status.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Stat](#stat)> | Promise used to return the link status.|
- Example
```js
fileio.lstat(path).then(function(stat){
console.info("Link status obtained:"+ number);
}).catch(function(err){
console.info("Failed to obtain the link status. Error:"+ err);
});
```
## fileio.lstat7+
lstat(path:string, callback:AsyncCallback<Stat>): void
Asynchronously obtains link status information. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file, pointing to the link status.|
| callback | AsyncCallback<[Stat](#stat)> | Yes| Callback invoked when the link status information is obtained asynchronously.|
- Example
```js
fileio.lstat(path, function (err, stat) {
// Do something.
));
```
## fileio.lstatSync7+
lstatSync(path:string): Stat
Synchronously obtains link status information.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file, pointing to the link status.|
- Return value
| Type| Description|
| -------- | -------- |
| [Stat](#stat) | Link status information.|
- Example
```js
let stat = fileio.lstatSync(path);
```
## fileio.read7+
read(buffer: ArrayBuffer, options?: Object): Promise<Readout>
Asynchronously reads data from a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| buffer | ArrayBuffer | Yes| Buffer used to store the file data read.|
| options | Object | No| The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to be read. It is optional. The default value is the buffer length minus the offset.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Readout](#readout)> | Promise used to return the data read.|
- Example
```js
fileio.read(new ArrayBuffer(4096)).then(function(readout){
console.info("File data read successfully:"+ String.fromCharCode.apply(null, new Uint8Array(readout.buffer)));
}).catch(function(err){
console.info("Failed to read file data. Error:"+ err);
});
```
## fileio.read7+
read(buffer: ArrayBuffer, options?: Object, callback: AsyncCallback<Readout>): void
Asynchronously reads data from a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| buffer | ArrayBuffer | Yes| Buffer used to store the file data read.|
| options | Object | No| The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to be read. It is optional. The default value is the buffer length minus the offset.|
| callback | AsyncCallback<[Readout](#readout)> | Yes| Callback invoked when the data is read asynchronously from the file.|
- Example
```js
let buf = new ArrayBuffer(4096);
fileio.read(buf, function (err, readOut) {
if (!err) {
console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)))
}
});
```
## fileio.rename7+
rename(oldPath: string, newPath: string): Promise<void>
Asynchronously renames a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| oldPath | string | Yes| Absolute path of the file to rename.|
| Newpath | String | Yes| Absolute path of the file renamed.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.rename(oldPath, Newpath).then(function() {
console.info("rename successfully");
}).catch(function(err){
console.info("rename failed with error:"+ err);
});
```
## fileio.rename7+
rename(oldPath: string, newPath: string, callback: AsyncCallback<void>): void
Asynchronously renames a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| oldpath | string | Yes| Absolute path of the file to rename.|
| Newpath | String | Yes| Absolute path of the file renamed.|
| Callback | AsyncCallback<void> | Yes| Callback invoked when the file is asynchronously renamed.|
- Example
```js
fileio.rename(oldpath, Newpath, function(err){
});
```
## fileio.renameSync7+
renameSync(oldPath: string, newPath: string): void
Synchronously renames a file.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| oldPath | string | Yes| Absolute path of the file to rename.|
| Newpath | String | Yes| Absolute path of the file renamed.|
- Example
```js
fileio.renameSync(oldpath, newpath);
```
## fileio.fsync7+
fsync(fd: number): Promise<void>
Asynchronously synchronizes a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to synchronize.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
fileio.fsync(fd).then(function(){
console.info("sync data successfully");
}).catch(function(err){
console.info("sync data failed with error:"+ err);
});
```
## fileio.fsync7+
fsync(fd: number, callback: AsyncCallback<void>): void
Asynchronously synchronizes a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to synchronize.|
| Callback | AsyncCallback<void> | Yes| Callback invoked when the file is synchronized in asynchronous mode.|
- Example
```js
fileio.fsync(fd, function(err){
// Do something.
});
```
## fileio.fsyncSync7+
fsyncSync(fd: number): void
Synchronizes a file in synchronous mode.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to synchronize.|
- Example
```js
fileio.fyncsSync(fd);
```
## fileio.fdatasync7+
fdatasync(fd: number): Promise<void>
Asynchronously synchronizes data in a file. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to synchronize.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result asynchronously. An empty value is returned.|
- Example
```js
fileio.fdatasync(fd).then(function(err) {
console.info("sync data successfully");
}).catch(function(err){
console.info("sync data failed with error:"+ err);
});
```
## fileio.fdatasync7+
fdatasync(fd: number, callback:AsyncCallback<void>): void
Asynchronously synchronizes data in a file. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to synchronize.|
| callback | AsyncCallback <void> | Yes| Callback invoked when the file data is synchronized in asynchronous mode.|
- Example
```js
fileio.fdatasync (fd, function (err) {
// Do something.
});
```
## fileio.fdatasyncSync7+
fdatasyncSync(fd: number): void
Synchronizes data in a file in synchronous mode.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the file to synchronize.|
- Example
```js
let stat = fileio.fdatasyncSync(fd);
```
## fileio.symlink7+
symlink(target: string, srcPath: string): Promise<void>
Asynchronously creates a symbolic link based on a path. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| target | string | Yes| Absolute path of the symbolic link.|
| srcPath | string | Yes| Absolute path of the referenced file or directory contained in the symbolic link.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result asynchronously. An empty value is returned.|
- Example
```js
fileio.symlink(target, srcPath).then(function() {
console.info("symlink successfully");
}).catch(function(err){
console.info("symlink failed with error:"+ err);
});
```
## fileio.symlink7+
symlink(target: string, srcPath: string, callback: AsyncCallback<void>): void
Asynchronously creates a symbolic link based on a path. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| target | string | Yes| Absolute path of the symbolic link.|
| srcPath | string | Yes| Absolute path of the referenced file or directory contained in the symbolic link.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the symbolic link is created asynchronously.|
- Example
```js
fileio.symlink(target, srcPath, function (err) {
// Do something.
});
```
## fileio.symlinkSync7+
symlinkSync(target: string, srcPath: string): void
Synchronously creates a symbolic link based on a specified path.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| target | string | Yes| Absolute path of the symbolic link.|
| srcPath | string | Yes| Absolute path of the referenced file or directory contained in the symbolic link.|
- Example
```js
fileio.symlinkSync(target, srcPath);
```
## fileio.chown7+
chown(path: string, uid: number, gid: number): Promise<void>
Asynchronously changes the file owner based on its path. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| uid | number | Yes| New user ID (UID).|
| gid | number | Yes| New group ID (GID).|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result asynchronously. An empty value is returned.|
- Example
```js
let stat = fileio.statSync(path);
fileio.chown(path, stat.uid, stat.gid)).then(function(){
console.info("chown successfully");
}).catch(function(err){
console.info("chown failed with error:"+ err);
});
```
## fileio.chown7+
chown(path: string, uid: number, gid: number, callback: AsyncCallback<void>): void
Asynchronously changes the file owner based on its path. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| uid | number | Yes| New UID.|
| gid | number | Yes| New GID.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file owner is changed asynchronously.|
- Example
```js
let stat = fileio.statSync(fpath)
fileio.chown(path, stat.uid, stat.gid, function (err){
// Do something.
});
```
## fileio.chownSync7+
chownSync(path: string, uid: number, gid: number): void
Synchronously changes the file owner based on its path.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| uid | number | Yes| New UID.|
| gid | number | Yes| New GID.|
- Example
```js
let stat = fileio.statSync(fpath)
fileio.chownSync(path, stat.uid, stat.gid);
```
## fileio.mkdtemp7+
mkdtemp(prefix: string): Promise<string>
Asynchronously creates a temporary directory. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| prefix | string | Yes| A randomly generated string used to replace "XXXXXX" in a directory.|
- Return value
| Name| Description|
| -------- | -------- |
| Promise<string> | Promise used to return the unique path generated.|
- Example
```js
fileio.mkdtemp(path + "XXXX").then(function(path){
console.info("mkdtemp successfully:"+ path);
}).catch(function(err){
console.info("mkdtemp failed with error:"+ err);
});
```
## fileio.mkdtemp7+
mkdtemp(prefix: string, callback: AsyncCallback<string>): void
Asynchronously creates a temporary directory. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| prefix | string | Yes| A randomly generated string used to replace "XXXXXX" in a directory.|
| callback | AsyncCallback<string> | Yes| Callback invoked when a temporary directory is created asynchronously.|
- Example
```js
fileio.mkdtemp(path + "XXXX", function (err, res) {
// Do something.
});
```
## fileio.mkdtempSync7+
mkdtempSync(prefix: string): string
Synchronously creates a temporary directory.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| prefix | string | Yes| A randomly generated string used to replace "XXXXXX" in a directory.|
- Return value
| Name| Description|
| -------- | -------- |
| string | Unique path generated.|
- Example
```js
let res = fileio.mkdtempSync(path + "XXXX");
```
## fileio.fchmod7+
fchmod(fd: number, mode: number): Promise<void>
Asynchronously changes the file permissions based on the file descriptor. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| mode | number | Yes| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|).
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
- Return value
| Name| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result asynchronously. An empty value is returned.|
- Example
```js
fileio.fchmod(fd, mode).then(function() {
console.info("chmod successfully");
}).catch(function(err){
console.info("chmod failed with error:"+ err);
});
```
## fileio.fchmod7+
fchmod(fd: number, mode: number, callback: AsyncCallback<void>): void
Asynchronously changes the file permissions based on the file descriptor. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| mode | number | Yes| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|).
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
| callback | AsyncCallback <void> | Yes| Callback invoked when the file permissions are changed asynchronously.|
- Example
```js
fileio.fchmod(fd, mode, function (err) {
// Do something.
});
```
## fileio.fchmodSync7+
fchmodSync(existingPath: string, newPath: string): void
Synchronously changes the file permissions based on the file descriptor.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| mode | number | Yes| Permissions on the file. You can specify multiple permissions, separated using a bitwise OR operator (|).
- **0o700**: The owner has the read, write, and execute permissions.
- **0o400**: The owner has the read permission.
- **0o200**: The owner has the write permission.
- **0o100**: The owner has the execute permission.
- **0o070**: The user group has the read, write, and execute permissions.
- **0o040**: The user group has the read permission.
- **0o020**: The user group has the write permission.
- **0o010**: The user group has the execute permission.
- **0o007**: Other users have the read, write, and execute permissions.
- **0o004**: Other users have the read permission.
- **0o002**: Other users have the write permission.
- **0o001**: Other users have the execute permission.|
- Example
```js
fileio.fchmodSync(fd, mode);
```
## fileio.createStream7+
createStream(path: string, mode: string): Promise<Stream>
Asynchronously opens a stream based on the file path. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | string | Yes| - **r**: Open a file for reading. The file must exist.
- **r+**: Open a file for both reading and writing. The file must exist.
- **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file.
- **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file.
- **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).
- **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Stream](#stream7)> | Promise used to return the result.|
- Example
```js
fileio.createStream(path, "r+").then(function(stream){
console.info("createStream successfully");
}).catch(function(err){
console.info("createStream failed with error:"+ err);
});
```
## fileio.createStream7+
createStream(path: string, mode: string, callback: AsyncCallback<Stream>): void
Asynchronously opens a stream based on the file path. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | string | Yes| - **r**: Open a file for reading. The file must exist.
- **r+**: Open a file for both reading and writing. The file must exist.
- **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file.
- **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file.
- **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).
- **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
| callback | AsyncCallback<[Stream](#stream7)> | Yes| Callback invoked when the stream is open asynchronously.|
- Example
```js
fileio.createStream(path, mode, function(err, stream){
// Do something.
});
```
## fileio.createStreamSync7+
createStreamSync(path: string, mode: string): Stream
Synchronously opens a stream based on the file path.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| mode | string | Yes| - **r**: Open a file for reading. The file must exist.
- **r+**: Open a file for both reading and writing. The file must exist.
- **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file.
- **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file.
- **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).
- **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
- Return value
| Name| Description|
| -------- | -------- |
| [Stream](#stream7) | Stream obtained.|
- Example
```js
let ss = fileio.createStreamSync(path, "r+");
```
## fileio.fdopenStream7+
fdopenStream(fd: number, mode: string): Promise<Stream>
Asynchronously opens a stream based on the file descriptor. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| mode | string | Yes| - **r**: Open a file for reading. The file must exist.
- **r+**: Open a file for both reading and writing. The file must exist.
- **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file.
- **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file.
- **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).
- **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
- Return value
| Name| Description|
| -------- | -------- |
| Promise<[Stream](#stream7)> | Promise used to return the result.|
- Example
```js
fileio.fdopenStream(fd, mode).then(function(stream){
console.info("openStream successfully"+);
}).catch(function(err){
console.info("openStream failed with error:"+ err);
});
```
## fileio.fdopenStream7+
fdopenStream(fd: number, mode: string, callback: AsyncCallback<Stream>): void
Asynchronously opens a stream based on the file descriptor. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| mode | string | Yes| - **r**: Open a file for reading. The file must exist.
- **r+**: Open a file for both reading and writing. The file must exist.
- **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file.
- **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file.
- **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).
- **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
| callback | AsyncCallback <[Stream](#stream7)> | Yes| Callback invoked when the stream is open asynchronously.|
- Example
```js
fileio.fdopenStream(fd, mode, function (err, stream) {
// Do something.
});
```
## fileio.fdopenStreamSync7+
fdopenStreamSync(fd: number, mode: string): Stream
Synchronously opens a stream based on the file descriptor.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| mode | string | Yes| - **r**: Open a file for reading. The file must exist.
- **r+**: Open a file for both reading and writing. The file must exist.
- **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file.
- **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file.
- **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).
- **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
- Return value
| Name| Description|
| -------- | -------- |
| [Stream](#stream7) | Stream operation result.|
- Example
```js
let ss = fileio.fdopenStreamSync(fd, "r+");
```
## fileio.fchown7+
fchown(fd: number, uid: number, gid: number): Promise<void>
Asynchronously changes the file owner based on the file descriptor. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| uid | number | Yes| New UID.|
| gid | number | Yes| New GID.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
let stat = fileio.statSync(path);
fileio.fchown(fd, stat.uid, stat.gid).then(function() {
console.info("chown successfully");
}).catch(function(err){
console.info("chown failed with error:"+ err);
});
```
## fileio.fchown7+
fchown(fd: number, uid: number, gid: number, callback: AsyncCallback<void>): void
Asynchronously changes the file owner based on the file descriptor. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| uid | number | Yes| New UID.|
| gid | number | Yes| New GID.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file owner is changed asynchronously.|
- Example
```js
let stat = fileio.statSync(fpath);
fileio.fchown(fd, stat.uid, stat.gid, function (err){
// Do something.
});
```
## fileio.fchownSync7+
fchownSync(fd: number, uid: number, gid: number): void
Synchronously changes the file owner based on the file descriptor.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fd | number | Yes| File descriptor of the target file.|
| uid | number | Yes| New UID.|
| gid | number | Yes| New GID.|
- Example
```js
let stat = fileio.statSync(fpath);
fileio.fchownSync(fd, stat.uid, stat.gid);
```
## fileio.lchown7+
lchown(path: string, uid: number, gid: number): Promise<void>
Asynchronously changes the file owner based on the file path, changes the owner of the symbolic link (not the referenced file), and returns the result in a promise.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| uid | number | Yes| New UID.|
| gid | number | Yes| New GID.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. An empty value is returned.|
- Example
```js
let stat = fileio.statSync(path);
fileio.lchown(path, stat.uid, stat.gid).then(function() {
console.info("chown successfully");
}).catch(function(err){
console.info("chown failed with error:"+ err);
});
```
## fileio.lchown7+
lchown(path: string, uid: number, gid: number, callback: AsyncCallback<void>): void
Asynchronously changes the file owner based on the file path, changes the owner of the symbolic link (not the referenced file), and returns the result in a callback.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| uid | number | Yes| New UID.|
| gid | number | Yes| New GID.|
| callback | AsyncCallback<void> | Yes| Callback invoked when the file owner is changed asynchronously.|
- Example
```js
let stat = fileio.statSync(path);
fileio.lchown(path, stat.uid, stat.gid, function (err){
// Do something.
});
```
## fileio.lchownSync7+
lchownSync(path: string, uid: number, gid: number): void
Synchronously changes the file owner based on the file path and changes the owner of the symbolic link (not the referenced file).
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| path | string | Yes| Absolute path of the target file.|
| uid | number | Yes| New UID.|
| gid | number | Yes| New GID.|
- Example
```js
let stat = fileio.statSync(path);
fileio.lchownSync(path, stat.uid, stat.gid);
```
## fileio.createWatcher7+
createWatcher(filename: string, events: number, callback: AsyncCallback<number>): Watcher
Asynchronously listens for the changes of a file or directory. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| filename | string | Yes| Absolute path of the target file.|
| events | Number | Yes| - **1**: : The file or directory is renamed.
- **2**: The file or directory is modified.
- **3**: The file or directory is modified and renamed.|
| callback | AsyncCallback<number > | Yes| Called each time a change is detected.|
- Return value
| Name| Description|
| -------- | -------- |
| [Watcher](#watcher7) | Instance for listening for a file change event.|
- Example
```js
fileio.createWatcher(filename, events, function(watcher){
// Do something.
});
```
## Readout
Obtains the file read result. This class applies only to the **read()** method.
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| bytesRead | number | Yes| Yes| Length of the data read.|
| offset | number | Yes| Yes| Position of the buffer to which the data will be read in reference to the start address of the buffer.|
| buffer | ArrayBufer | Yes| Yes| Buffer for storing the data read.|
## Stat
Provides detailed file information. Before calling a method of the **Stat** class, use the [stat()](#fileiostat) method synchronously or asynchronously to create a **Stat** instance.
### Attributes
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| dev | number | Yes| No| Major device number.|
| ino | number | Yes| No| File ID. Different files on the same device have different **ino**s.|
| mode | number | Yes| No| File type and permissions. The first four bits indicate the file type, and the last 12 bits indicate the permissions. The bit fields are described as follows:
- **0o170000**: mask used to obtain the file type.
- **0o140000**: The file is a socket.
- **0o120000**: The file is a symbolic link.
- **0o100000**: The file is a regular file.
- **0o060000**: The file is a block device.
- **0o040000**: The file is a directory.
- **0o020000**: The file is a character device.
- **0o010000**: The file is a named pipe (FIFO).
- **0o0700**: mask used to obtain the owner permissions.
- **0o0400**: The owner has the permission to read a regular file or a directory entry.
- **0o0200**: The owner has the permission to write a regular file or create and delete a directory entry.
- **0o0100**: The owner has the permission to execute a regular file or search for the specified path in a directory.
- **0o0070**: mask used to obtain the user group permissions.
- **0o0040**: The user group has the permission to read a regular file or a directory entry.
- **0o0020**: The user group has the permission to write a regular file or create and delete a directory entry.
- **0o0010**: The user group has the permission to execute a regular file or search for the specified path in a directory.
- **0o0007**: mask used to obtain the permissions of other users.
- **0o0004**: Other users have the permission to read a regular file or a directory entry.
- **0o0002**: Other users have the permission to write a regular file or create and delete a directory entry.
- **0o0001**: Other users have the permission to execute a regular file or search for the specified path in a directory.|
| nlink | number | Yes| No| Number of hard links in the file.|
| uid | number | Yes| No| User ID, that is ID of the file owner.|
| gid | number | Yes| No| Group ID, that is, ID of the user group of the file.|
| rdev | number | Yes| No| Minor device number.|
| size | number | Yes| No| File size, in bytes. This parameter is valid only for regular files.|
| blocks | number | Yes| No| Number of blocks occupied by a file. Each block is 512 bytes.|
| atime | number | Yes| No| Time of the last access to the file. The value is the number of seconds elapsed since 00:00:00 on January 1, 1970.|
| mtime | number | Yes| No| Time of the last modification to the file. The value is the number of seconds elapsed since 00:00:00 on January 1, 1970.|
| ctime | number | Yes| No| Time of the last status change of the file. The value is the number of seconds elapsed since 00:00:00 on January 1, 1970.|
### isBlockDevice
isBlockDevice(): boolean
Checks whether the current directory entry is a block special file. A block special file supports access by block only, and it is cached when accessed.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a block special file.|
- Example
```js
let isBLockDevice = fileio.statSync(path).isBlockDevice();
```
### isCharacterDevice
isCharacterDevice(): boolean
Checks whether the current directory entry is a character special file. A character special file supports random access, and it is not cached when accessed.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a character special file.|
- Example
```js
let isCharacterDevice = fileio.statSync(path).isCharacterDevice();
```
### isDirectory
isDirectory(): boolean
Checks whether a directory entry is a directory.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a directory.|
- Example
```js
let isDirectory = fileio.statSync(path).isDirectory();
```
### isFIFO
isFIFO(): boolean
Checks whether the current directory entry is a named pipe (or FIFO). Named pipes are used for inter-process communication.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a FIFO.|
- Example
```js
let isFIFO = fileio.statSync(path).isFIFO();
```
### isFile
isFile(): boolean
Checks whether a directory entry is a regular file.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a regular file.|
- Example
```js
let isFile = fileio.statSync(fpath).isFile();
```
### isSocket
isSocket(): boolean
Checks whether a directory entry is a socket.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a socket.|
- Example
```js
let isSocket = fileio.statSync(path).isSocket();
```
### isSymbolicLink
isSymbolicLink(): boolean
Checks whether a directory entry is a symbolic link.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a symbolic link.|
- Example
```js
let isSymbolicLink = fileio.statSync(path).isSymbolicLink();
```
## Watcher7+
Listens for the changes of a file. You can call the **Watcher.stop()** method synchronously or asynchronously to stop the listening.
### stop7+
stop(): void
Asynchronously stops **watcher**. This method uses a promise to return the result.
- Example
```js
fileio.stop();
```
### stop7+
stop(callback: AsyncCallback): void
Asynchronously stops **watcher**. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<void> | Yes| Callback invoked when **watcher** is stopped asynchronously.|
- Example
```js
fileio.stop(function(err){
// Do something.
});
```
## Stream7+
File stream. Before calling a method of the **Stream** class, use the **createStream()** method synchronously or asynchronously to create a **Stream** instance.
### close7+
close(): Promise<void>
Asynchronously closes the stream. This method uses a promise to return the result.
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the stream close result.|
- Example
```js
let ss= fileio.createStreamSync(path);
ss.close().then(function(){
console.info("close fileStream successfully");
}).catch(function(err){
console.info("close fileStream failed with error:"+ err);
});
```
### close7+
close(callback: AsyncCallback<void>): void
Asynchronously closes the stream. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<void> | Yes| Callback invoked when the stream is closed asynchronously.|
- Example
```js
let ss= fileio.createStreamSync(path);
ss.close(function (err) {
// do something
});
```
### closeSync7+
closeSync(): void
Synchronously closes the stream.
- Example
```js
let ss= fileio.createStreamSync(path);
ss.closeSync();
```
### flush7+
flush(): Promise<void>
Asynchronously flushes the stream. This method uses a promise to return the result.
- Return value
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the stream flushing result.|
- Example
```js
let ss= fileio.createStreamSync(path);
ss.flush().then(function (){
console.info("flush successfully");
}).catch(function(err){
console.info("flush failed with error:"+ err);
});
```
### flush7+
flush(callback: AsyncCallback<void>): void
Asynchronously flushes the stream. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<void> | Yes| Callback invoked when the stream is asynchronously flushed.|
- Example
```js
let ss= fileio.createStreamSync(path);
ss.flush(function (err) {
// do something
});
```
### flushSync7+
flushSync(): void
Synchronously flushes the stream.
- Example
```js
let ss= fileio.createStreamSync(path);
ss.flushSync();
```
### write7+
write(buffer: ArrayBuffer | string, options?: Object): Promise<number>
Asynchronously writes data into the stream. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| buffer | ArrayBuffer \| string | Yes| Data to write. It can be a string or data from a buffer.|
| options | Object | No| The options are as follows:
- **offset** (number): position of the data to write in reference to the start address of the data. The default value is **0**.
- **length** (number): length of the data to write. The default value is the buffer length minus the offset.
- **position** (number): start position to write the data in the file. By default, data is written from the current position.
- **encoding** (string): format of the string to be encoded. The default value is **utf-8**, which is the only value supported.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<number> | Promise used to return the length of the data written in the file.|
- Example
```js
let ss= fileio.createStreamSync(fpath, "r+");
ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
console.info("write successfully:"+ number);
}).catch(function(err){
console.info("write failed with error:"+ err);
});
```
### write7+
write(buffer:ArrayBuffer | string,options?:Object, callback:AsyncCallback<number>): void
Asynchronously writes data into the stream. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| buffer | ArrayBuffer \| string | Yes| Data to write. It can be a string or data from a buffer.|
| options | Object | No| The options are as follows:
- **offset** (number): position of the data to write in reference to the start address of the data. The default value is **0**.
- **length** (number): length of the data to write. The default value is the buffer length minus the offset.
- **position** (number): start position to write the data in the file. By default, data is written from the current position.
- **encoding** (string): format of the string to be encoded. The default value is **utf-8**, which is the only value supported.|
| callback | AsyncCallback<number> | Yes| Callback invoked when the data is written asynchronously.|
- Example
```js
let ss= fileio.createStreamSync(fpath, "r+");
ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
if (!err) {
// do something
console.log(bytesWritten);
}
});
```
### writeSync7+
writeSync(buffer: ArrayBuffer | string, options?:Object): number
Synchronously writes data into the stream.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| buffer | ArrayBuffer \| string | Yes| Data to write. It can be a string or data from a buffer.|
| options | Object | No| The options are as follows:
- **offset** (number): position of the data to write in reference to the start address of the data. The default value is **0**.
- **length** (number): length of the data to write. The default value is the buffer length minus the offset.
- **position** (number): start position to write the data in the file. By default, data is written from the current position.
- **encoding** (string): format of the string to be encoded. The default value is **utf-8**, which is the only value supported.|
- Return value
| Type| Description|
| -------- | -------- |
| number | Length of the data written in the file.|
- Example
```js
let ss= fileio.createStreamSync(fpath,"r+");
let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});
```
### read7+
read(buffer: ArrayBuffer, options?: Object): Promise<Readout>
Asynchronously reads data from the stream. This method uses a promise to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| buffer | ArrayBuffer | Yes| Buffer used to store the file read.|
| options | Object | No| The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to read. The default value is the buffer length minus the offset.
- **position** (number): position of the data to be read in the file. By default, data is read from the current position.|
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Readout](#readout)> | Promise used to return the data read.|
- Example
```js
let ss = fileio.createStreamSync(fpath, "r+");
ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readout){
console.info("read data successfully");
}).catch(function(err){
console.info("read data failed with error:"+ err);
});
```
### read7+
read(buffer: ArrayBuffer, options?: Object, callback: AsyncCallback<Readout>): void
Asynchronously reads data from the stream. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| buffer | ArrayBuffer | Yes| Buffer used to store the file read.|
| options | Object | No| The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to read. The default value is the buffer length minus the offset.
- **position** (number): position of the data to be read in the file. By default, data is read from the current position.|
| callback | AsyncCallback<[Readout](#readout)> | Yes| Callback invoked when data is read asynchronously from the stream.|
- Example
```js
let ss = fileio.createStreamSync(fpath, "r+");
ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
if (!err) {
// do something
}
});
```
### readSync7+
readSync(buffer: ArrayBuffer, options?: Object): number
Synchronously reads data from the stream.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| buffer | ArrayBuffer | Yes| Buffer used to store the file read.|
| options | Object | No| The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to read. The default value is the buffer length minus the offset.
- **position** (number): position of the data to be read in the file. By default, data is read from the current position.|
- Return value
| Type| Description|
| -------- | -------- |
| number | Length of the data read.|
- Example
```js
let ss = fileio.createStreamSync(fpath, "r+");
let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});
```
## Dir
Manages directories. Before calling a method of the **Dir** class, use the [opendir()](#fileioopendir) method synchronously or asynchronously to create a **Dir** instance.
### read
read(): Promise<Dirent>
Asynchronously reads the next directory entry. This method uses a promise to return the result.
- Return value
| Type| Description|
| -------- | -------- |
| Promise<[Dirent](#dirent)> | Directory entry that is read asynchronously.|
- Example
```js
let dir = fileio.opendirSync(dpath);
dir.read().then(function (dirent){
console.info("read successfully:"+ dirent.name);
}).catch(function(err){
console.info("read failed with error:"+ err);
});
```
### read
read(callback: AsyncCallback<Dirent>): void
Asynchronously reads the next directory entry. This method uses a callback to return the result.
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<[Dirent](#dirent)> | Yes| Callback invoked when the next directory entry is asynchronously read.|
- Example
```js
let dir = fileio.opendirSync(dpath);
dir.read(function (err, dirent) {
if (!err) {
// do something
console.log(dirent.name)
}
});
```
### readSync
readSync(): Dirent
Synchronously reads the next directory entry.
- Return value
| Type| Description|
| -------- | -------- |
| [Dirent](#dirent) | Directory entry read.|
- Example
```js
let dir = fileio.opendirSync(dpath);
let dirent = dir.readSync();
```
### closeSync
closeSync(): void
Closes a directory. After a directory is closed, the file descriptor in Dir will be released and no directory entry can be read from Dir.
- Example
```js
let dir = fileio.opendirSync(dpath);
dir.closeSync();
```
## Dirent
Provides information about files and directories. Before calling a method of the **Dirent** class, use the [dir.read()](#read) method synchronously or asynchronously to create a **Dirent** instance.
### Attributes
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| name | string | Yes| No| Directory entry name.|
### isBlockDevice
isBlockDevice(): boolean
Checks whether the current directory entry is a block special file. A block special file supports access by block only, and it is cached when accessed.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a block special file.|
- Example
```js
let dir = fileio.opendirSync(dpath);
let isBLockDevice = dir.readSync().isBlockDevice();
```
### isCharacterDevice
isCharacterDevice(): boolean
Checks whether a directory entry is a character special file. A character special file supports random access, and it is not cached when accessed.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a character special file.|
- Example
```js
let dir = fileio.opendirSync(dpath);
let isCharacterDevice = dir.readSync().isCharacterDevice();
```
### isDirectory
isDirectory(): boolean
Checks whether a directory entry is a directory.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a directory.|
- Example
```js
let dir = fileio.opendirSync(dpath);
let isDirectory = dir.readSync().isDirectory();
```
### isFIFO
isFIFO(): boolean
Checks whether the current directory entry is a named pipe (or FIFO). Named pipes are used for inter-process communication.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a FIFO.|
- Example
```js
let dir = fileio.opendirSync(dpath);
let isFIFO = dir.readSync().isFIFO();
```
### isFile
isFile(): boolean
Checks whether a directory entry is a regular file.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a regular file.|
- Example
```js
let dir = fileio.opendirSync(dpath);
let isFile = dir.readSync().isFile();
```
### isSocket
isSocket(): boolean
Checks whether a directory entry is a socket.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a socket.|
- Example
```js
let dir = fileio.opendirSync(dpath);
let isSocket = dir.readSync().isSocket();
```
### isSymbolicLink
isSymbolicLink(): boolean
Checks whether a directory entry is a symbolic link.
- Return value
| Type| Description|
| -------- | -------- |
| boolean | Whether the directory entry is a symbolic link.|
- Example
```js
let dir = fileio.opendirSync(dpath);
let isSymbolicLink = dir.readSync().isSymbolicLink();
```