@ohos.file.fs (文件管理)

该模块为基础文件操作API,提供基础文件操作能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。

说明:

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import fs from '@ohos.file.fs';

使用说明

使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:

Stage模型

import UIAbility from '@ohos.app.ability.UIAbility';

export default class EntryAbility extends UIAbility {
   onWindowStageCreate(windowStage) {
       let context = this.context;
       let pathDir = context.filesDir;
   }
}

FA模型

import featureAbility from '@ohos.ability.featureAbility';

let context = featureAbility.getContext();
context.getFilesDir().then((data) => {
     let pathDir = data;
})

FA模型context的具体获取方法参见FA模型

fs.stat

stat(file: string|number): Promise<Stat>

获取文件详细属性信息,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file string|number 文件应用沙箱路径path或已打开的文件描述符fd。

返回值:

类型 说明
Promise<Stat> Promise对象。返回文件的具体信息。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.stat(filePath).then((stat) => {
    console.info("get file info succeed, the size of file is " + stat.size);
}).catch((err) => {
    console.info("get file info failed with error message: " + err.message + ", error code: " + err.code);
});

fs.stat

stat(file: string|number, callback: AsyncCallback<Stat>): void

获取文件详细属性信息,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file string|number 文件应用沙箱路径path或已打开的文件描述符fd。
callback AsyncCallback<Stat> 异步获取文件的信息之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

fs.stat(pathDir, (err, stat) => {
  if (err) {
    console.info("get file info failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("get file info succeed, the size of file is " + stat.size);
  }
});

fs.statSync

statSync(file: string|number): Stat

以同步方法获取文件详细属性信息。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file string|number 文件应用沙箱路径path或已打开的文件描述符fd。

返回值:

类型 说明
Stat 表示文件的具体信息。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let stat = fs.statSync(pathDir);
console.info("get file info succeed, the size of file is " + stat.size);

fs.access

access(path: string): Promise<boolean>

检查文件是否存在,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件应用沙箱路径。

返回值:

类型 说明
Promise<boolean> Promise对象。返回boolean,表示文件是否存在。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.access(filePath).then((res) => {
  if (res) {
    console.info("file exists");
  }
}).catch((err) => {
  console.info("access failed with error message: " + err.message + ", error code: " + err.code);
});

fs.access

access(path: string, callback: AsyncCallback<boolean>): void

检查文件是否存在,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件应用沙箱路径。
callback AsyncCallback<boolean> 异步检查文件是否存在的回调,如果存在,回调返回true,否则返回false。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.access(filePath, (err, res) => {
  if (err) {
    console.info("access failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    if (res) {
      console.info("file exists");
    }
  }
});

fs.accessSync

accessSync(path: string): boolean

以同步方法检查文件是否存在。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件应用沙箱路径。

返回值:

类型 说明
boolean 返回true,表示文件存在;返回false,表示文件不存在。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
try {
    let res = fs.accessSync(filePath);
    if (res) {
      console.info("file exists");
    }
} catch(err) {
    console.info("accessSync failed with error message: " + err.message + ", error code: " + err.code);
}

fs.close

close(file: File|number): Promise<void>

关闭文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file File|number 已打开的File对象或已打开的文件描述符fd。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.close(file).then(() => {
    console.info("close file succeed");
    fs.closeSync(file);
}).catch((err) => {
    console.info("close file failed with error message: " + err.message + ", error code: " + err.code);
});

fs.close

close(file: File|number, callback: AsyncCallback<void>): void

关闭文件,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file File|number 已打开的File对象或已打开的文件描述符fd。
callback AsyncCallback<void> 异步关闭文件之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.close(file, (err) => {
  if (err) {
    console.info("close file failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("close file success");
  }
});

fs.closeSync

closeSync(file: File|number): void

以同步方法关闭文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file File|number 已打开的File对象或已打开的文件描述符fd。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.closeSync(file);

fs.copyFile

copyFile(src: string|number, dest: string|number, mode?: number): Promise<void>

复制文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
src string|number 待复制文件的路径或待复制文件的文件描述符。
dest string|number 目标文件路径或目标文件的文件描述符。
mode number mode提供覆盖文件的选项,当前仅支持0,且默认为0。
0:完全覆盖目标文件。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcPath = pathDir + "/srcDir/test.txt";
let dstPath = pathDir + "/dstDir/test.txt";
fs.copyFile(srcPath, dstPath).then(() => {
    console.info("copy file succeed");
}).catch((err) => {
    console.info("copy file failed with error message: " + err.message + ", error code: " + err.code);
});

fs.copyFile

copyFile(src: string|number, dest: string|number, mode?: number, callback: AsyncCallback<void>): void

复制文件,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
src string|number 待复制文件的路径或待复制文件的文件描述符。
dest string|number 目标文件路径或目标文件的文件描述符。
mode number mode提供覆盖文件的选项,当前仅支持0,且默认为0。
0:完全覆盖目标文件,未覆盖部分将被裁切掉。
callback AsyncCallback<void> 异步复制文件之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcPath = pathDir + "/srcDir/test.txt";
let dstPath = pathDir + "/dstDir/test.txt";
fs.copyFile(srcPath, dstPath, (err) => {
  if (err) {
    console.info("copy file failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("copy file success");
  }
});

fs.copyFileSync

copyFileSync(src: string|number, dest: string|number, mode?: number): void

以同步方法复制文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
src string|number 待复制文件的路径或待复制文件的文件描述符。
dest string|number 目标文件路径或目标文件的文件描述符。
mode number mode提供覆盖文件的选项,当前仅支持0,且默认为0。
0:完全覆盖目标文件,未覆盖部分将被裁切掉。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcPath = pathDir + "/srcDir/test.txt";
let dstPath = pathDir + "/dstDir/test.txt";
fs.copyFileSync(srcPath, dstPath);

fs.mkdir

mkdir(path: string): Promise<void>

创建目录,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let dirPath = pathDir + "/testDir";
fs.mkdir(dirPath).then(() => {
    console.info("mkdir succeed");
}).catch((err) => {
    console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
});

fs.mkdir

mkdir(path: string, callback: AsyncCallback<void>): void

创建目录,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。
callback AsyncCallback<void> 异步创建目录操作完成之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let dirPath = pathDir + "/testDir";
fs.mkdir(dirPath, (err) => {
  if (err) {
    console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("mkdir success");
  }
});

fs.mkdirSync

mkdirSync(path: string): void

以同步方法创建目录。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let dirPath = pathDir + "/testDir";
fs.mkdirSync(dirPath);

fs.open

open(path: string, mode?: number): Promise<File>

打开文件,使用Promise异步回调。支持使用URI打开文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径或文件URI。
mode number 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:
- OpenMode.READ_ONLY(0o0):只读打开。
- OpenMode.WRITE_ONLY(0o1):只写打开。
- OpenMode.READ_WRITE(0o2):读写打开。
给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项:
- OpenMode.CREATE(0o100):若文件不存在,则创建文件。
- OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。
- OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。
- OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。
- OpenMode.DIR(0o200000):如果path不指向目录,则出错。
- OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。
- OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。

返回值:

类型 说明
Promise<File> Promise对象。返回File对象。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE).then((file) => {
    console.info("file fd: " + file.fd);
}).catch((err) => {
    console.info("open file failed with error message: " + err.message + ", error code: " + err.code);
});

fs.open

open(path: string, mode?: number, callback: AsyncCallback<File>): void

打开文件,使用callback异步回调。支持使用URI打开文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径或URI。
mode number 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:
- OpenMode.READ_ONLY(0o0):只读打开。
- OpenMode.WRITE_ONLY(0o1):只写打开。
- OpenMode.READ_WRITE(0o2):读写打开。
给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项:
- OpenMode.CREATE(0o100):若文件不存在,则创建文件。
- OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。
- OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。
- OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。
- OpenMode.DIR(0o200000):如果path不指向目录,则出错。
- OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。
- OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE, (err, file) => {
  if (err) {
    console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("file fd: " + file.fd);
  }
});

fs.openSync

openSync(path: string, mode?: number): File

以同步方法打开文件。支持使用URI打开文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 打开文件的应用沙箱路径或URI。
mode number 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:
- OpenMode.READ_ONLY(0o0):只读打开。
- OpenMode.WRITE_ONLY(0o1):只写打开。
- OpenMode.READ_WRITE(0o2):读写打开。
给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项:
- OpenMode.CREATE(0o100):若文件不存在,则创建文件。
- OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。
- OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。
- OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。
- OpenMode.DIR(0o200000):如果path不指向目录,则出错。
- OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。
- OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。

返回值:

类型 说明
File 打开的File对象。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
console.info("file fd: " + file.fd);
fs.closeSync(file);

fs.read

read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>

从文件读取数据,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer 用于保存读取到的文件数据的缓冲区。
options Object 支持如下选项:
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。
- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。

返回值:

类型 说明
Promise<number> Promise对象。返回读取的结果。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let buf = new ArrayBuffer(4096);
fs.read(file.fd, buf).then((readLen) => {
    console.info("read file data succeed");
    console.info(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
    fs.closeSync(file);
}).catch((err) => {
    console.info("read file data failed with error message: " + err.message + ", error code: " + err.code);
});

fs.read

read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }, callback: AsyncCallback<number>): void

从文件读取数据,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer 用于保存读取到的文件数据的缓冲区。
options Object 支持如下选项:
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。
- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。
callback AsyncCallback<number> 异步读取数据之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let buf = new ArrayBuffer(4096);
fs.read(file.fd, buf, (err, readLen) => {
  if (err) {
    console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("read file data succeed");
    console.info(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
    fs.closeSync(file);
  }
});

fs.readSync

readSync(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number

以同步方法从文件读取数据。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer 用于保存读取到的文件数据的缓冲区。
options Object 支持如下选项:
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。
- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。

返回值:

类型 说明
number 实际读取的长度。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let buf = new ArrayBuffer(4096);
let num = fs.readSync(file.fd, buf);
fs.closeSync(file);

fs.rmdir

rmdir(path: string): Promise<void>

删除整个目录,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let dirPath = pathDir + "/testDir";
fs.rmdir(dirPath).then(() => {
    console.info("rmdir succeed");
}).catch((err) => {
    console.info("rmdir failed with error message: " + err.message + ", error code: " + err.code);
});

fs.rmdir

rmdir(path: string, callback: AsyncCallback<void>): void

删除整个目录,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。
callback AsyncCallback<void> 异步删除目录之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let dirPath = pathDir + "/testDir";
fs.rmdir(dirPath, (err) => {
  if (err) {
    console.info("rmdir failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("rmdir succeed");
  }
});

fs.rmdirSync

rmdirSync(path: string): void

以同步方法删除目录。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let dirPath = pathDir + "/testDir";
fs.rmdirSync(dirPath);

unlink(path: string): Promise<void>

删除单个文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.unlink(filePath).then(() => {
    console.info("remove file succeed");
}).catch((err) => {
    console.info("remove file failed with error message: " + err.message + ", error code: " + err.codeor);
});

unlink(path: string, callback: AsyncCallback<void>): void

删除文件,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。
callback AsyncCallback<void> 异步删除文件之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.unlink(filePath, (err) => {
  if (err) {
    console.info("remove file failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("remove file succeed");
  }
});

fs.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.unlinkSync(filePath);

fs.write

write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>

将数据写入文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer|string 待写入文件的数据,可来自缓冲区或字符串。
options Object 支持如下选项:
- offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
- length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。
- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。当前仅支持 'utf-8'。

返回值:

类型 说明
Promise<number> Promise对象。返回实际写入的长度。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.write(file.fd, "hello, world").then((writeLen) => {
  console.info("write data to file succeed and size is:" + writeLen);
  fs.closeSync(file);
}).catch((err) => {
  console.info("write data to file failed with error message: " + err.message + ", error code: " + err.code);
});

fs.write

write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void

将数据写入文件,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer|string 待写入文件的数据,可来自缓冲区或字符串。
options Object 支持如下选项:
- offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
- length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。
- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。当前仅支持 'utf-8'。
callback AsyncCallback<number> 异步将数据写入完成后执行的回调函数。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.write(file.fd, "hello, world", (err, writeLen) => {
  if (err) {
    console.info("write failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("write data to file succeed and size is:" + writeLen);
    fs.closeSync(file);
  }
});

fs.writeSync

writeSync(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number

以同步方法将数据写入文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer|string 待写入文件的数据,可来自缓冲区或字符串。
options Object 支持如下选项:
- offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
- length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。
- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。当前仅支持 'utf-8'。

返回值:

类型 说明
number 实际写入的长度。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeLen = fs.writeSync(file.fd, "hello, world");
console.info("write data to file succeed and size is:" + writeLen);
fs.closeSync(file);

fs.truncate

truncate(file: string|number, len?: number): Promise<void>

截断文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file string|number 文件的应用沙箱路径或已打开的文件描述符fd。
len number 文件截断后的长度,以字节为单位。默认为0。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let len = 5;
fs.truncate(filePath, len).then(() => {
    console.info("truncate file succeed");
}).catch((err) => {
    console.info("truncate file failed with error message: " + err.message + ", error code: " + err.code);
});

fs.truncate

truncate(file: string|number, len?: number, callback: AsyncCallback<void>): void

截断文件,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file string|number 文件的应用沙箱路径或已打开的文件描述符fd。
len number 文件截断后的长度,以字节为单位。默认为0。
callback AsyncCallback<void> 回调函数,本调用无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let len = 5;
fs.truncate(filePath, len, (err) => {
  if (err) {
    console.info("truncate failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("truncate success");
  }
});

fs.truncateSync

truncateSync(file: string|number, len?: number): void

以同步方法截断文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
file string|number 文件的应用沙箱路径或已打开的文件描述符fd。
len number 文件截断后的长度,以字节为单位。默认为0。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let len = 5;
fs.truncateSync(filePath, len);

fs.readText

readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<string>

基于文本方式读取文件(即直接读取文件的文本内容),使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
filePath string 文件的应用沙箱路径。
options Object 支持如下选项:
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。
- length,number类型,表示期望读取数据的长度。可选,默认文件长度。
- encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。

返回值:

类型 说明
Promise<string> Promise对象。返回读取文件的内容。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.readText(filePath).then((str) => {
    console.info("readText succeed:" + str);
}).catch((err) => {
    console.info("readText failed with error message: " + err.message + ", error code: " + err.code);
});

fs.readText

readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<string>): void

基于文本方式读取文件(即直接读取文件的文本内容),使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
filePath string 文件的应用沙箱路径。
options Object 支持如下选项:
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。
- length,number类型,表示期望读取数据的长度。可选,默认文件长度。
- encoding,string类型,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。
callback AsyncCallback<string> 回调函数,返回读取文件的内容。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.readText(filePath, { offset: 1, encoding: 'UTF-8' }, (err, str) => {
  if (err) {
    console.info("read text failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("readText succeed:" + str);
  }
});

fs.readTextSync

readTextSync(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): string

以同步方法基于文本方式读取文件(即直接读取文件的文本内容)。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
filePath string 文件的应用沙箱路径。
options Object 支持如下选项:
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。
- length,number类型,表示期望读取数据的长度。可选,默认文件长度。
- encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。

返回值:

类型 说明
string 返回读取文件的内容。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let str = fs.readTextSync(filePath, {offset: 1, length: 3});
console.info("readText succeed:" + str);

fs.lstat

lstat(path: string): Promise<Stat>

获取链接文件信息,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。

返回值:

类型 说明
Promise<Stat> promise对象,返回文件对象,表示文件的具体信息,详情见stat。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.lstat(filePath).then((stat) => {
    console.info("get link status succeed, the size of file is" + stat.size);
}).catch((err) => {
    console.info("get link status failed with error message: " + err.message + ", error code: " + err.code);
});

fs.lstat

lstat(path: string, callback: AsyncCallback<Stat>): void

获取链接文件信息,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。
callback AsyncCallback<Stat> 回调函数,返回文件的具体信息。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.lstat(filePath, (err, stat) => {
    if (err) {
      console.info("lstat failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      console.info("get link status succeed, the size of file is" + stat.size);
    }
});

fs.lstatSync

lstatSync(path: string): Stat

以同步方法获取链接文件信息。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。

返回值:

类型 说明
Stat 表示文件的具体信息。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let stat = fs.lstatSync(filePath);

fs.rename

rename(oldPath: string, newPath: string): Promise<void>

重命名文件或文件夹,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
oldPath string 文件的应用沙箱原路径。
newPath string 文件的应用沙箱新路径。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/new.txt";
fs.rename(srcFile, dstFile).then(() => {
    console.info("rename succeed");
}).catch((err) => {
    console.info("rename failed with error message: " + err.message + ", error code: " + err.code);
});

fs.rename

rename(oldPath: string, newPath: string, callback: AsyncCallback<void>): void

重命名文件或文件夹,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
oldPath string 文件的应用沙箱原路径。
newPath string 文件的应用沙箱新路径。
callback AsyncCallback<void> 异步重命名文件之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/new.txt";
fs.rename(srcFile, dstFile, (err) => {
  if (err) {
    console.info("rename failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("rename success");
  }
});

fs.renameSync

renameSync(oldPath: string, newPath: string): void

以同步方法重命名文件或文件夹。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
oldPath string 文件的应用沙箱原路径。
newPath string 文件的应用沙箱新路径。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/new.txt";
fs.renameSync(srcFile, dstFile);

fs.fsync

fsync(fd: number): Promise<void>

同步文件数据,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsync(file.fd).then(() => {
    console.info("sync data succeed");
}).catch((err) => {
    console.info("sync data failed with error message: " + err.message + ", error code: " + err.code);
});

fs.fsync

fsync(fd: number, callback: AsyncCallback<void>): void

同步文件数据,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
Callback AsyncCallback<void> 异步将文件数据同步之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsync(file.fd, (err) => {
  if (err) {
    console.info("fsync failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("fsync success");
    fs.closeSync(file);
  }
});

fs.fsyncSync

fsyncSync(fd: number): void

以同步方法同步文件数据。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsyncSync(file.fd);
fs.closeSync(file);

fs.fdatasync

fdatasync(fd: number): Promise<void>

实现文件内容数据同步,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdatasync(file.fd).then((err) => {
  console.info("sync data succeed");
  fs.closeSync(file);
}).catch((err) => {
  console.info("sync data failed with error message: " + err.message + ", error code: " + err.code);
});

fs.fdatasync

fdatasync(fd: number, callback: AsyncCallback<void>): void

实现文件内容数据同步,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
callback AsyncCallback<void> 异步将文件内容数据同步之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdatasync (file.fd, (err) => {
  if (err) {
    console.info("fdatasync failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("fdatasync success");
    fs.closeSync(file);
  }
});

fs.fdatasyncSync

fdatasyncSync(fd: number): void

以同步方法实现文件内容数据同步。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
let stat = fs.fdatasyncSync(file.fd);
fs.closeSync(file);

symlink(target: string, srcPath: string): Promise<void>

基于文件路径创建符号链接,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
target string 源文件的应用沙箱路径。
srcPath string 符号链接文件的应用沙箱路径。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/test";
fs.symlink(srcFile, dstFile).then(() => {
    console.info("symlink succeed");
}).catch((err) => {
    console.info("symlink failed with error message: " + err.message + ", error code: " + err.code);
});

symlink(target: string, srcPath: string, callback: AsyncCallback<void>): void

基于文件路径创建符号链接,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
target string 源文件的应用沙箱路径。
srcPath string 符号链接文件的应用沙箱路径。
callback AsyncCallback<void> 异步创建符号链接信息之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/test";
fs.symlink(srcFile, dstFile, (err) => {
  if (err) {
    console.info("symlink failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("symlink success");
  }
});

fs.symlinkSync

symlinkSync(target: string, srcPath: string): void

以同步的方法基于文件路径创建符号链接。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
target string 源文件的应用沙箱路径。
srcPath string 符号链接文件的应用沙箱路径。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/test";
fs.symlinkSync(srcFile, dstFile);

fs.listFile

listFile(path: string, options?: { recursion?: boolean; listNum?: number; filter?: Filter; }): Promise<string[]>

列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件夹的应用沙箱路径。
options Object 文件过滤选项。默认不进行过滤。

options参数说明:

参数名 类型 必填 说明
recursion boolean 是否递归子目录下文件名,默认为false。
listNum number 列出文件名数量。当设置0时,列出所有文件,默认为0。
filter Filter 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。

返回值:

类型 说明
Promise<string[]> Promise对象。返回文件名数组。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let options = {
  "recursion": false,
  "listNum": 0,
  "filter": {
    "suffix": [".png", ".jpg", ".jpeg"],
    "displayName": ["%abc", "efg%"],
    "fileSizeOver": 1024,
    "lastModifiedAfter": new Date().getTime(),
  }
};
fs.listFile(pathDir, options).then((filenames) => {
  console.info("listFile succeed");
  for (let i = 0; i < filenames.length; i++) {
    console.info("fileName: %s", filenames[i]);
  }
}).catch((err) => {
    console.info("list file failed with error message: " + err.message + ", error code: " + err.code);
});

fs.listFile

listFile(path: string, options?: { recursion?: boolean; listNum?: number; filter?: Filter; }, callback: AsyncCallback<string[]>): void

列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤,使用Callback异步回调。

参数:

参数名 类型 必填 说明
path string 文件夹的应用沙箱路径。
options Object 文件过滤选项。默认不进行过滤。
callback AsyncCallback<string[]> 异步列出文件名数组之后的回调。

options参数说明:

参数名 类型 必填 说明
recursion boolean 是否递归子目录下文件名,默认为false。
listNum number 列出文件名数量。当设置0时,列出所有文件,默认为0。
filter Filter 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let options = {
  "recursion": false,
  "listNum": 0,
  "filter": {
    "suffix": [".png", ".jpg", ".jpeg"],
    "displayName": ["%abc", "efg%"],
    "fileSizeOver": 1024,
    "lastModifiedAfter": new Date().getTime(),
  }
};
fs.listFile(pathDir, options, (err, filenames) => {
  if (err) {
    console.info("list file failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("listFile succeed");
    for (let i = 0; i < filenames.length; i++) {
      console.info("filename: %s", filenames[i]);
    }
  }
});

fs.listFileSync

listFileSync(path: string, options?: { recursion?: boolean; listNum?: number; filter?: Filter; }): string[]

以同步方式列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤。

参数:

参数名 类型 必填 说明
path string 文件夹的应用沙箱路径。
options Object 文件过滤选项。默认不进行过滤。

options参数说明:

参数名 类型 必填 说明
recursion boolean 是否递归子目录下文件名,默认为false。
listNum number 列出文件名数量。当设置0时,列出所有文件,默认为0。
filter Filter 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。

返回值:

类型 说明
string[] 返回文件名数组。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let options = {
  "recursion": false,
  "listNum": 0,
  "filter": {
    "suffix": [".png", ".jpg", ".jpeg"],
    "displayName": ["%abc", "efg%"],
    "fileSizeOver": 1024,
    "lastModifiedAfter": new Date().getTime(),
  }
};
let filenames = fs.listFileSync(pathDir, options);
console.info("listFile succeed");
for (let i = 0; i < filenames.length; i++) {
  console.info("filename: %s", filenames[i]);
}

fs.moveFile

moveFile(src: string, dest: string, mode?: number): Promise<void>

移动文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
src string 源文件的应用沙箱路径。
dest string 目的文件的应用沙箱路径。
mode number 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcPath = pathDir + "/source.txt";
let destPath = pathDir + "/dest.txt";
fs.moveFile(srcPath, destPath, 0).then(() => {
    console.info("move file succeed");
}).catch((err) => {
    console.info("move file failed with error message: " + err.message + ", error code: " + err.code);
});

fs.moveFile

moveFile(src: string, dest: string, mode?: number, callback: AsyncCallback<void>): void

移动文件,使用Callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
src string 源文件的应用沙箱路径。
dest string 目的文件的应用沙箱路径。
mode number 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。
callback AsyncCallback<void> 异步移动文件之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcPath = pathDir + "/source.txt";
let destPath = pathDir + "/dest.txt";
fs.moveFile(srcPath, destPath, 0, (err) => {
  if (err) {
    console.info("move file failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("move file succeed");
  }  
});

fs.moveFileSync

moveFile(src: string, dest: string, mode?: number): void

以同步方式移动文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
src string 源文件的应用沙箱路径。
dest string 目的文件的应用沙箱路径。
mode number 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let srcPath = pathDir + "/source.txt";
let destPath = pathDir + "/dest.txt";
fs.moveFileSync(srcPath, destPath, 0);
console.info("move file succeed");

fs.mkdtemp

mkdtemp(prefix: string): Promise<string>

创建临时目录,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
prefix string 用随机产生的字符串替换以“XXXXXX”结尾目录路径。

返回值:

类型 说明
Promise<string> Promise对象。返回生成的唯一目录路径。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

fs.mkdtemp(pathDir + "/XXXXXX").then((pathDir) => {
    console.info("mkdtemp succeed:" + pathDir);
}).catch((err) => {
    console.info("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
});

fs.mkdtemp

mkdtemp(prefix: string, callback: AsyncCallback<string>): void

创建临时目录,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
prefix string 用随机产生的字符串替换以“XXXXXX”结尾目录路径。
callback AsyncCallback<string> 异步创建临时目录之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

fs.mkdtemp(pathDir + "/XXXXXX", (err, res) => {
  if (err) {
    console.info("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("mkdtemp success");
  }
});

fs.mkdtempSync

mkdtempSync(prefix: string): string

以同步的方法创建临时目录。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
prefix string 用随机产生的字符串替换以“XXXXXX”结尾目录路径。

返回值:

类型 说明
string 产生的唯一目录路径。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let res = fs.mkdtempSync(pathDir + "/XXXXXX");

fs.createStream

createStream(path: string, mode: string): Promise<Stream>

基于文件路径打开文件流,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。
mode string - r:打开只读文件,该文件必须存在。
- r+:打开可读写的文件,该文件必须存在。
- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

返回值:

类型 说明
Promise<Stream> Promise对象。返回文件流的结果。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.createStream(filePath, "r+").then((stream) => {
    console.info("createStream succeed");
}).catch((err) => {
    console.info("createStream failed with error message: " + err.message + ", error code: " + err.code);
});

fs.createStream

createStream(path: string, mode: string, callback: AsyncCallback<Stream>): void

基于文件路径打开文件流,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。
mode string - r:打开只读文件,该文件必须存在。
- r+:打开可读写的文件,该文件必须存在。
- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
callback AsyncCallback<Stream> 异步打开文件流之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
fs.createStream(filePath, "r+", (err, stream) => {
  if (err) {
    console.info("create stream failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("create stream success");
  }
});

fs.createStreamSync

createStreamSync(path: string, mode: string): Stream

以同步方法基于文件路径打开文件流。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径。
mode string - r:打开只读文件,该文件必须存在。
- r+:打开可读写的文件,该文件必须存在。
- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

返回值:

类型 说明
Stream 返回文件流的结果。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");

fs.fdopenStream

fdopenStream(fd: number, mode: string): Promise<Stream>

基于文件描述符打开文件流,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
mode string - r:打开只读文件,该文件必须存在。
- r+:打开可读写的文件,该文件必须存在。
- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

返回值:

类型 说明
Promise<Stream> Promise对象。返回文件流的结果。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdopenStream(file.fd, "r+").then((stream) => {
    console.info("openStream succeed");
    fs.closeSync(file);
}).catch((err) => {
    console.info("openStream failed with error message: " + err.message + ", error code: " + err.code);
});

fs.fdopenStream

fdopenStream(fd: number, mode: string, callback: AsyncCallback<Stream>): void

基于文件描述符打开文件流,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
mode string - r:打开只读文件,该文件必须存在。
- r+:打开可读写的文件,该文件必须存在。
- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
callback AsyncCallback<Stream> 异步打开文件流之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
fs.fdopenStream(file.fd, "r+", (err, stream) => {
  if (err) {
    console.info("fdopen stream failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("fdopen stream success");
    fs.closeSync(file);
  }
});

fs.fdopenStreamSync

fdopenStreamSync(fd: number, mode: string): Stream

以同步方法基于文件描述符打开文件流。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
mode string - r:打开只读文件,该文件必须存在。
- r+:打开可读写的文件,该文件必须存在。
- w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
- a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
- a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

返回值:

类型 说明
Stream 返回文件流的结果。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY | fs.OpenMode.CREATE);
let ss = fs.fdopenStreamSync(file.fd, "r+");
fs.closeSync(file);

Stat

文件具体信息,在调用Stat的方法前,需要先通过stat()方法(同步或异步)来构建一个Stat实例。

系统能力:SystemCapability.FileManagement.File.FileIO

属性

名称 类型 可读 可写 说明
ino number 标识该文件。通常同设备上的不同文件的INO不同。
mode number 表示文件权限,各特征位的含义如下:
- 0o400:用户读,对于普通文件,所有者可读取文件;对于目录,所有者可读取目录项。
- 0o200:用户写,对于普通文件,所有者可写入文件;对于目录,所有者可创建/删除目录项。
- 0o100:用户执行,对于普通文件,所有者可执行文件;对于目录,所有者可在目录中搜索给定路径名。
- 0o040:用户组读,对于普通文件,所有用户组可读取文件;对于目录,所有用户组可读取目录项。
- 0o020:用户组写,对于普通文件,所有用户组可写入文件;对于目录,所有用户组可创建/删除目录项。
- 0o010:用户组执行,对于普通文件,所有用户组可执行文件;对于目录,所有用户组是否可在目录中搜索给定路径名。
- 0o004:其他读,对于普通文件,其余用户可读取文件;对于目录,其他用户组可读取目录项。
- 0o002:其他写,对于普通文件,其余用户可写入文件;对于目录,其他用户组可创建/删除目录项。
- 0o001:其他执行,对于普通文件,其余用户可执行文件;对于目录,其他用户组可在目录中搜索给定路径名。
uid number 文件所有者的ID。
gid number 文件所有组的ID。
size number 文件的大小,以字节为单位。仅对普通文件有效。
atime number 上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。
mtime number 上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。
ctime number 最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。

isBlockDevice

isBlockDevice(): boolean

用于判断文件是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
boolean 表示文件是否是块特殊设备。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let isBLockDevice = fs.statSync(filePath).isBlockDevice();

isCharacterDevice

isCharacterDevice(): boolean

用于判断文件是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
boolean 表示文件是否是字符特殊设备。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let isCharacterDevice = fs.statSync(filePath).isCharacterDevice();

isDirectory

isDirectory(): boolean

用于判断文件是否是目录。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
boolean 表示文件是否是目录。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let dirPath = pathDir + "/test";
let isDirectory = fs.statSync(dirPath).isDirectory(); 

isFIFO

isFIFO(): boolean

用于判断文件是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
boolean 表示文件是否是 FIFO。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let isFIFO = fs.statSync(filePath).isFIFO(); 

isFile

isFile(): boolean

用于判断文件是否是普通文件。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
boolean 表示文件是否是普通文件。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let isFile = fs.statSync(filePath).isFile();

isSocket

isSocket(): boolean

用于判断文件是否是套接字。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
boolean 表示文件是否是套接字。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let isSocket = fs.statSync(filePath).isSocket(); 

isSymbolicLink(): boolean

用于判断文件是否是符号链接。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
boolean 表示文件是否是符号链接。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test";
let isSymbolicLink = fs.statSync(filePath).isSymbolicLink(); 

Stream

文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。

close

close(): Promise<void>

关闭文件流,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
Promise<void> Promise对象。返回表示异步关闭文件流的结果。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.close().then(() => {
    console.info("close fileStream succeed");
}).catch((err) => {
    console.info("close fileStream  failed with error message: " + err.message + ", error code: " + err.code);
});

close

close(callback: AsyncCallback<void>): void

异步关闭文件流,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 异步关闭文件流之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.close((err) => {
  if (err) {
    console.info("close stream failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("close stream success"):
  }
});

closeSync

closeSync(): void

同步关闭文件流。

系统能力:SystemCapability.FileManagement.File.FileIO

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.closeSync();

flush

flush(): Promise<void>

刷新文件流,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

返回值:

类型 说明
Promise<void> Promise对象。返回表示异步刷新文件流的结果。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.flush().then(() => {
    console.info("flush succeed");
}).catch((err) => {
    console.info("flush failed with error message: " + err.message + ", error code: " + err.code);
});

flush

flush(callback: AsyncCallback<void>): void

异步刷新文件流,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 异步刷新文件流后的回调函数。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.flush((err) => {
  if (err) {
    console.info("flush stream failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("flush success");
  }
});

flushSync

flushSync(): void

同步刷新文件流。

系统能力:SystemCapability.FileManagement.File.FileIO

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.flushSync();

write

write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>

将数据写入流文件,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
buffer ArrayBuffer|string 待写入文件的数据,可来自缓冲区或字符串。
options Object 支持如下选项:
- length,number类型,表示期望写入数据的长度。默认缓冲区长度。
- offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。

返回值:

类型 说明
Promise<number> Promise对象。返回实际写入的长度。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.write("hello, world",{ offset: 5, length: 5, encoding: 'utf-8' }).then((number) => {
    console.info("write succeed and size is:" + number);
}).catch((err) => {
    console.info("write failed with error message: " + err.message + ", error code: " + err.code);
});

write

write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void

将数据写入流文件,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
buffer ArrayBuffer|string 待写入文件的数据,可来自缓冲区或字符串。
options Object 支持如下选项:
- length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。
- offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。
callback AsyncCallback<number> 异步写入完成后执行的回调函数。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.write("hello, world", { offset: 5, length: 5, encoding :'utf-8'}, (err, bytesWritten) => {
  if (err) {
    console.info("write stream failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    if (bytesWritten) {
      console.info("write succeed and size is:" + bytesWritten);
    }
  }
});

writeSync

writeSync(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number

以同步方法将数据写入流文件。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
buffer ArrayBuffer|string 待写入文件的数据,可来自缓冲区或字符串。
options Object 支持如下选项:
- length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。
- offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
- encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。

返回值:

类型 说明
number 实际写入的长度。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath,"r+");
let num = ss.writeSync("hello, world", {offset: 5, length: 5, encoding :'utf-8'});

read

read(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>

从流文件读取数据,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
buffer ArrayBuffer 用于读取文件的缓冲区。
options Object 支持如下选项:
- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。

返回值:

类型 说明
Promise<number> Promise对象。返回读取的结果。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
let buf = new ArrayBuffer(4096);
ss.read(buf, {offset: 5, length: 5}).then((readLen) => {
  console.info("read data succeed");
  console.log(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
}).catch((err) => {
    console.info("read data failed with error message: " + err.message + ", error code: " + err.code);
});

read

read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback<number>): void

从流文件读取数据,使用callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
buffer ArrayBuffer 用于读取文件的缓冲区。
options Object 支持如下选项:
- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读.
callback AsyncCallback<number> 异步从流文件读取数据之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
let buf = new ArrayBuffer(4096)
ss.read(buf, {offset: 5, length: 5}, (err, readLen) => {
  if (err) {
    console.info("read stream failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("read data succeed");
    console.log(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
  }
});

readSync

readSync(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number

以同步方法从流文件读取数据。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
buffer ArrayBuffer 用于读取文件的缓冲区。
options Object 支持如下选项:
- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。
- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。

返回值:

类型 说明
number 实际读取的长度。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
let num = ss.readSync(new ArrayBuffer(4096), {offset: 5, length: 5});

File

由open接口打开的File对象。

系统能力:SystemCapability.FileManagement.File.FileIO

属性

名称 类型 可读 可写 说明
fd number 打开的文件描述符。

lock

lock(exclusive?: boolean): Promise<void>

文件阻塞式施加共享锁或独占锁,使用Promise异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
exclusive boolean 是否施加独占锁,默认false。

返回值:

类型 说明
Promise<void> Promise对象。无返回值。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
file.lock(true).then(() => {
  console.log("lock file successful");
}).catch((err) => {
    console.info("lock file failed with error message: " + err.message + ", error code: " + err.code);
});

lock

lock(exclusive?: boolean, callback: AsyncCallback<void>): void

文件阻塞式施加共享锁或独占锁,使Callback异步回调。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
exclusive boolean 是否施加独占锁,默认false。
callback AsyncCallback<void> 异步文件上锁之后的回调。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
file.lock(true, (err) => {
  if (err) {
    console.info("lock file failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.log("lock file successful");
  }
});

tryLock

tryLock(exclusive?: boolean): void

文件非阻塞式施加共享锁或独占锁。

系统能力:SystemCapability.FileManagement.File.FileIO

参数:

参数名 类型 必填 说明
exclusive boolean 是否施加独占锁,默认false。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
file.tryLock(true);
console.log("lock file successful");

unlock

unlock(): void

以同步方式给文件解锁。

系统能力:SystemCapability.FileManagement.File.FileIO

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
file.tryLock(true);
file.unlock();
console.log("unlock file successful");

OpenMode

open接口flags参数常量。文件打开标签。

系统能力:SystemCapability.FileManagement.File.FileIO

名称 类型 说明
READ_ONLY number 0o0 只读打开。
WRITE_ONLY number 0o1 只写打开。
READ_WRITE number 0o2 读写打开。
CREATE number 0o100 若文件不存在,则创建文件。
TRUNC number 0o1000 如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。
APPEND number 0o2000 以追加方式打开,后续写将追加到文件末尾。
NONBLOCK number 0o4000 如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。
DIR number 0o200000 如果path不指向目录,则出错。
NOFOLLOW number 0o400000 如果path指向符号链接,则出错。
SYNC number 0o4010000 以同步IO的方式打开文件。

Filter

系统能力:SystemCapability.FileManagement.File.FileIO

文件过滤配置项类型,支持listFile接口使用。

名称 类型 说明
suffix Array<string> 文件后缀名完全匹配,各个关键词OR关系。
displayName Array<string> 文件名模糊匹配,各个关键词OR关系。
mimeType Array<string> mime类型完全匹配,各个关键词OR关系。
fileSizeOver number 文件大小匹配,大于等于指定大小的文件。
lastModifiedAfter number 文件最近修改时间匹配,在指定时间点及之后的文件。
excludeMedia boolean 是否排除Media中已有的文件。