文件管理

2024-01-23 16:31 更新

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

说明

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

导入模块

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

使用说明

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

Stage模型

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. export default class EntryAbility extends UIAbility {
  3. onWindowStageCreate(windowStage) {
  4. let context = this.context;
  5. let pathDir = context.filesDir;
  6. }
  7. }

FA模型

  1. import featureAbility from '@ohos.ability.featureAbility';
  2. let context = featureAbility.getContext();
  3. context.getFilesDir().then((data) => {
  4. let pathDir = data;
  5. })

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错误码

示例:

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

fs.stat

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

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

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

参数:

参数名

类型

必填

说明

file

string|number

文件应用沙箱路径path或已打开的文件描述符fd。

callback

AsyncCallback<Stat>

异步获取文件的信息之后的回调。

错误码:

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

示例:

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

fs.statSync

statSync(file: string|number): Stat

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

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

参数:

参数名

类型

必填

说明

file

string|number

文件应用沙箱路径path或已打开的文件描述符fd。

返回值:

类型

说明

Stat

表示文件的具体信息。

错误码:

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

示例:

  1. let stat = fs.statSync(pathDir);
  2. 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错误码

示例:

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

fs.access

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

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

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

参数:

参数名

类型

必填

说明

path

string

文件应用沙箱路径。

callback

AsyncCallback<boolean>

异步检查文件是否存在的回调。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. fs.access(filePath, (err, res) => {
  3. if (err) {
  4. console.error("access failed with error message: " + err.message + ", error code: " + err.code);
  5. } else {
  6. if (res) {
  7. console.info("file exists");
  8. }
  9. }
  10. });

fs.accessSync

accessSync(path: string): boolean

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

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

参数:

参数名

类型

必填

说明

path

string

文件应用沙箱路径。

返回值:

类型

说明

boolean

返回boolean,表示文件是否存在。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. try {
  3. let res = fs.accessSync(filePath);
  4. if (res) {
  5. console.info("file exists");
  6. }
  7. } catch(err) {
  8. console.error("accessSync failed with error message: " + err.message + ", error code: " + err.code);
  9. }

fs.close

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

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

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

参数:

参数名

类型

必填

说明

file

File|number

已打开的File对象或已打开的文件描述符fd。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

错误码:

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

示例:

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

fs.close

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

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

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

参数:

参数名

类型

必填

说明

file

File|number

已打开的File对象或已打开的文件描述符fd。

callback

AsyncCallback<void>

异步关闭文件之后的回调。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath);
  3. fs.close(file, (err) => {
  4. if (err) {
  5. console.error("close file failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("close file success");
  8. }
  9. });

fs.closeSync

closeSync(file: File|number): void

以同步方法关闭文件。

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

参数:

参数名

类型

必填

说明

file

File|number

已打开的File对象或已打开的文件描述符fd。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath);
  3. 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错误码

示例:

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

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错误码

示例:

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

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错误码

示例:

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

fs.mkdir

mkdir(path: string): Promise<void>

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

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

参数:

参数名

类型

必填

说明

path

string

目录的应用沙箱路径。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

错误码:

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

示例:

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

fs.mkdir

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

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

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

参数:

参数名

类型

必填

说明

path

string

目录的应用沙箱路径。

callback

AsyncCallback<void>

异步创建目录操作完成之后的回调。

错误码:

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

示例:

  1. let dirPath = pathDir + "/testDir";
  2. fs.mkdir(dirPath, (err) => {
  3. if (err) {
  4. console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
  5. } else {
  6. console.info("mkdir success");
  7. }
  8. });

fs.mkdirSync

mkdirSync(path: string): void

以同步方法创建目录。

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

参数:

参数名

类型

必填

说明

path

string

目录的应用沙箱路径。

错误码:

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

示例:

  1. let dirPath = pathDir + "/testDir";
  2. 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错误码

示例:

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

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错误码

示例:

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

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错误码

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  3. console.info("file fd: " + file.fd);
  4. 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错误码

示例:

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

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错误码

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
  3. let buf = new ArrayBuffer(4096);
  4. fs.read(file.fd, buf, (err, readLen) => {
  5. if (err) {
  6. console.error("read failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("read file data succeed");
  9. console.info(String.fromCharCode.apply(null, new Uint8Array(buf.slice(0, readLen))));
  10. fs.closeSync(file);
  11. }
  12. });

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错误码

示例:

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

fs.rmdir

rmdir(path: string): Promise<void>

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

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

参数:

参数名

类型

必填

说明

path

string

目录的应用沙箱路径。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

错误码:

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

示例:

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

fs.rmdir

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

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

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

参数:

参数名

类型

必填

说明

path

string

目录的应用沙箱路径。

callback

AsyncCallback<void>

异步删除目录之后的回调。

错误码:

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

示例:

  1. let dirPath = pathDir + "/testDir";
  2. fs.rmdir(dirPath, (err) => {
  3. if (err) {
  4. console.error("rmdir failed with error message: " + err.message + ", error code: " + err.code);
  5. } else {
  6. console.info("rmdir succeed");
  7. }
  8. });

fs.rmdirSync

rmdirSync(path: string): void

以同步方法删除目录。

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

参数:

参数名

类型

必填

说明

path

string

目录的应用沙箱路径。

错误码:

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

示例:

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

fs.unlink

unlink(path: string): Promise<void>

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

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

参数:

参数名

类型

必填

说明

path

string

文件的应用沙箱路径。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

错误码:

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

示例:

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

fs.unlink

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

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

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

参数:

参数名

类型

必填

说明

path

string

文件的应用沙箱路径。

callback

AsyncCallback<void>

异步删除文件之后的回调。

错误码:

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

示例:

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

fs.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

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

参数:

参数名

类型

必填

说明

path

string

文件的应用沙箱路径。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. 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错误码

示例:

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

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错误码

示例:

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

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错误码

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  3. let writeLen = fs.writeSync(file.fd, "hello, world");
  4. console.info("write data to file succeed and size is:" + writeLen);
  5. 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错误码

示例:

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

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错误码

示例:

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

fs.truncateSync

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

以同步方法截断文件。

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

参数:

参数名

类型

必填

说明

file

string|number

文件的应用沙箱路径或已打开的文件描述符fd。

len

number

文件截断后的长度,以字节为单位。默认为0。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let len = 5;
  3. 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错误码

示例:

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

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错误码

示例:

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

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错误码

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let str = fs.readTextSync(filePath, {offset: 1, length: 3});
  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错误码

示例:

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

fs.lstat

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

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

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

参数:

参数名

类型

必填

说明

path

string

文件的应用沙箱路径。

callback

AsyncCallback<Stat>

回调函数,返回文件的具体信息。

错误码:

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

示例:

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

fs.lstatSync

lstatSync(path: string): Stat

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

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

参数:

参数名

类型

必填

说明

path

string

文件的应用沙箱路径。

返回值:

类型

说明

Stat

表示文件的具体信息。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. 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错误码

示例:

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

fs.rename

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

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

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

参数:

参数名

类型

必填

说明

oldPath

string

文件的应用沙箱原路径。

newPath

string

文件的应用沙箱新路径。

callback

AsyncCallback<void>

异步重命名文件之后的回调。

错误码:

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

示例:

  1. let srcFile = pathDir + "/test.txt";
  2. let dstFile = pathDir + "/new.txt";
  3. fs.rename(srcFile, dstFile, (err) => {
  4. if (err) {
  5. console.error("rename failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("rename success");
  8. }
  9. });

fs.renameSync

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

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

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

参数:

参数名

类型

必填

说明

oldPath

string

文件的应用沙箱原路径。

newPath

string

文件的应用沙箱新路径。

错误码:

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

示例:

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

fs.fsync

fsync(fd: number): Promise<void>

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

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

参数:

参数名

类型

必填

说明

fd

number

已打开的文件描述符。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

错误码:

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

示例:

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

fs.fsync

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

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

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

参数:

参数名

类型

必填

说明

fd

number

已打开的文件描述符。

Callback

AsyncCallback<void>

异步将文件数据同步之后的回调。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath);
  3. fs.fsync(file.fd, (err) => {
  4. if (err) {
  5. console.error("fsync failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("fsync success");
  8. fs.closeSync(file);
  9. }
  10. });

fs.fsyncSync

fsyncSync(fd: number): void

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

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

参数:

参数名

类型

必填

说明

fd

number

已打开的文件描述符。

错误码:

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

示例:

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

fs.fdatasync

fdatasync(fd: number): Promise<void>

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

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

参数:

参数名

类型

必填

说明

fd

number

已打开的文件描述符。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

错误码:

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

示例:

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

fs.fdatasync

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

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

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

参数:

参数名

类型

必填

说明

fd

number

已打开的文件描述符。

callback

AsyncCallback<void>

异步将文件内容数据同步之后的回调。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath);
  3. fs.fdatasync (file.fd, (err) => {
  4. if (err) {
  5. console.error("fdatasync failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("fdatasync success");
  8. fs.closeSync(file);
  9. }
  10. });

fs.fdatasyncSync

fdatasyncSync(fd: number): void

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

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

参数:

参数名

类型

必填

说明

fd

number

已打开的文件描述符。

错误码:

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

示例:

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

fs.symlink

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

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

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

参数:

参数名

类型

必填

说明

target

string

源文件的应用沙箱路径。

srcPath

string

符号链接文件的应用沙箱路径。

返回值:

类型

说明

Promise<void>

Promise对象。无返回值。

错误码:

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

示例:

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

fs.symlink

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

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

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

参数:

参数名

类型

必填

说明

target

string

源文件的应用沙箱路径。

srcPath

string

符号链接文件的应用沙箱路径。

callback

AsyncCallback<void>

异步创建符号链接信息之后的回调。

错误码:

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

示例:

  1. let srcFile = pathDir + "/test.txt";
  2. let dstFile = pathDir + "/test";
  3. fs.symlink(srcFile, dstFile, (err) => {
  4. if (err) {
  5. console.error("symlink failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("symlink success");
  8. }
  9. });

fs.symlinkSync

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

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

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

参数:

参数名

类型

必填

说明

target

string

源文件的应用沙箱路径。

srcPath

string

符号链接文件的应用沙箱路径。

错误码:

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

示例:

  1. let srcFile = pathDir + "/test.txt";
  2. let dstFile = pathDir + "/test";
  3. 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错误码

示例:

  1. let options = {
  2. "recursion": false,
  3. "listNum": 0,
  4. "filter": {
  5. "suffix": [".png", ".jpg", ".jpeg"],
  6. "displayName": ["*abc", "efg*"],
  7. "fileSizeOver": 1024,
  8. "lastModifiedAfter": new Date().getTime(),
  9. }
  10. };
  11. fs.listFile(pathDir, options).then((filenames) => {
  12. console.info("listFile succeed");
  13. for (let i = 0; i < filenames.length; i++) {
  14. console.info("fileName: %s", filenames[i]);
  15. }
  16. }).catch((err) => {
  17. console.error("list file failed with error message: " + err.message + ", error code: " + err.code);
  18. });

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错误码

示例:

  1. let options = {
  2. "recursion": false,
  3. "listNum": 0,
  4. "filter": {
  5. "suffix": [".png", ".jpg", ".jpeg"],
  6. "displayName": ["*abc", "efg*"],
  7. "fileSizeOver": 1024,
  8. "lastModifiedAfter": new Date().getTime(),
  9. }
  10. };
  11. fs.listFile(pathDir, options, (err, filenames) => {
  12. if (err) {
  13. console.error("list file failed with error message: " + err.message + ", error code: " + err.code);
  14. } else {
  15. console.info("listFile succeed");
  16. for (let i = 0; i < filenames.length; i++) {
  17. console.info("filename: %s", filenames[i]);
  18. }
  19. }
  20. });

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错误码

示例:

  1. let options = {
  2. "recursion": false,
  3. "listNum": 0,
  4. "filter": {
  5. "suffix": [".png", ".jpg", ".jpeg"],
  6. "displayName": ["*abc", "efg*"],
  7. "fileSizeOver": 1024,
  8. "lastModifiedAfter": new Date().getTime(),
  9. }
  10. };
  11. let filenames = fs.listFileSync(pathDir, options);
  12. console.info("listFile succeed");
  13. for (let i = 0; i < filenames.length; i++) {
  14. console.info("filename: %s", filenames[i]);
  15. }

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。

错误码:

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

示例:

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

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错误码

示例:

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

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错误码

示例:

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

fs.mkdtemp

mkdtemp(prefix: string): Promise<string>

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

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

参数:

参数名

类型

必填

说明

prefix

string

用随机产生的字符串替换以“XXXXXX”结尾目录路径。

返回值:

类型

说明

Promise<string>

Promise对象。返回生成的唯一目录路径。

错误码:

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

示例:

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

fs.mkdtemp

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

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

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

参数:

参数名

类型

必填

说明

prefix

string

用随机产生的字符串替换以“XXXXXX”结尾目录路径。

callback

AsyncCallback<string>

异步创建临时目录之后的回调。

错误码:

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

示例:

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

fs.mkdtempSync

mkdtempSync(prefix: string): string

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

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

参数:

参数名

类型

必填

说明

prefix

string

用随机产生的字符串替换以“XXXXXX”结尾目录路径。

返回值:

类型

说明

string

产生的唯一目录路径。

错误码:

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

示例:

  1. 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错误码

示例:

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

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错误码

示例:

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

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错误码

示例:

  1. let filePath = pathDir + "/test.txt";
  2. 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错误码

示例:

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

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错误码

示例:

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

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错误码

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY | fs.OpenMode.CREATE);
  3. let ss = fs.fdopenStreamSync(file.fd, "r+");
  4. 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错误码

示例:

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

isCharacterDevice

isCharacterDevice(): boolean

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

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

返回值:

类型

说明

boolean

表示文件是否是字符特殊设备。

错误码:

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

示例:

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

isDirectory

isDirectory(): boolean

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

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

返回值:

类型

说明

boolean

表示文件是否是目录。

错误码:

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

示例:

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

isFIFO

isFIFO(): boolean

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

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

返回值:

类型

说明

boolean

表示文件是否是 FIFO。

错误码:

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

示例:

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

isFile

isFile(): boolean

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

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

返回值:

类型

说明

boolean

表示文件是否是普通文件。

错误码:

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

示例:

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

isSocket

isSocket(): boolean

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

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

返回值:

类型

说明

boolean

表示文件是否是套接字。

错误码:

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

示例:

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

isSymbolicLink

isSymbolicLink(): boolean

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

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

返回值:

类型

说明

boolean

表示文件是否是符号链接。

错误码:

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

示例:

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

Stream

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

close

close(): Promise<void>

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

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

返回值:

类型

说明

Promise<void>

Promise对象。返回表示异步关闭文件流的结果。

错误码:

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

示例:

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

close

close(callback: AsyncCallback<void>): void

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

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

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

异步关闭文件流之后的回调。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let ss= fs.createStreamSync(filePath, "r+");
  3. ss.close((err) => {
  4. if (err) {
  5. console.error("close stream failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("close stream success");
  8. }
  9. });

closeSync

closeSync(): void

同步关闭文件流。

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

错误码:

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

示例:

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

flush

flush(): Promise<void>

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

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

返回值:

类型

说明

Promise<void>

Promise对象。返回表示异步刷新文件流的结果。

错误码:

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

示例:

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

flush

flush(callback: AsyncCallback<void>): void

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

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

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

异步刷新文件流后的回调函数。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let ss= fs.createStreamSync(filePath, "r+");
  3. ss.flush((err) => {
  4. if (err) {
  5. console.error("flush stream failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("flush success");
  8. }
  9. });

flushSync

flushSync(): void

同步刷新文件流。

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let ss= fs.createStreamSync(filePath, "r+");
  3. 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错误码

示例:

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

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错误码

示例:

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

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错误码

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let ss= fs.createStreamSync(filePath,"r+");
  3. 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错误码

示例:

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

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错误码

示例:

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

readSync

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

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

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

参数:

参数名

类型

必填

说明

buffer

ArrayBuffer

用于读取文件的缓冲区。

options

Object

支持如下选项:

- length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。

- offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。

返回值:

类型

说明

number

实际读取的长度。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let ss = fs.createStreamSync(filePath, "r+");
  3. 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错误码

示例:

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

lock

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

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

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

参数:

参数名

类型

必填

说明

exclusive

boolean

是否施加独占锁,默认false。

callback

AsyncCallback<void>

异步文件上锁之后的回调。

错误码:

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

示例:

  1. let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  2. file.lock(true, (err) => {
  3. if (err) {
  4. console.error("lock file failed with error message: " + err.message + ", error code: " + err.code);
  5. } else {
  6. console.log("lock file successful");
  7. }
  8. });

tryLock

tryLock(exclusive?: boolean): void;

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

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

参数:

参数名

类型

必填

说明

exclusive

boolean

是否施加独占锁,默认false。

错误码:

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

示例:

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

unlock

unlock(): void;

以同步方式给文件解锁。

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

错误码:

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

示例:

  1. let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  2. file.tryLock(true);
  3. file.unlock();
  4. 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中已有的文件。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号