harmony 鸿蒙@ohos.file.fs (文件管理)

  • 2023-02-03
  • 浏览 (1205)

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

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

说明:

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

导入模块

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

使用说明

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

Stage模型

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

  export default class EntryAbility extends UIAbility {
    onWindowStageCreate(windowStage: window.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错误码

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  fs.stat(filePath).then((stat: fs.Stat) => {
    console.info("get file info succeed, the size of file is " + stat.size);
  }).catch((err: BusinessError) => {
    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错误码

示例:

  import { BusinessError } from '@ohos.base';
  fs.stat(pathDir, (err: BusinessError, stat: fs.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错误码

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  fs.access(filePath).then((res: boolean) => {
    if (res) {
      console.info("file exists");
    }
  }).catch((err: BusinessError) => {
    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错误码

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  fs.access(filePath, (err: BusinessError, res: boolean) => {
    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错误码

示例:

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

fs.close

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

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

fs.close

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

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath);
  fs.close(file, (err: BusinessError) => {
    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: number|File): void

以同步方法关闭文件。

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

参数:

参数名 类型 必填 说明
file number|File 已打开的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错误码

示例:

  import { BusinessError } from '@ohos.base';
  let srcPath = pathDir + "/srcDir/test.txt";
  let dstPath = pathDir + "/dstDir/test.txt";
  fs.copyFile(srcPath, dstPath).then(() => {
    console.info("copy file succeed");
  }).catch((err: BusinessError) => {
    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错误码

示例:

  import { BusinessError } from '@ohos.base';
  let srcPath = pathDir + "/srcDir/test.txt";
  let dstPath = pathDir + "/dstDir/test.txt";
  fs.copyFile(srcPath, dstPath, (err: BusinessError) => {
    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.copyDir10+

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

复制源文件夹至目标路径下,使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
src string 源文件夹的应用沙箱路径。
dest string 目标文件夹的应用沙箱路径。
mode number 复制模式。默认mode为0。
-&nbsp; mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。
-&nbsp; mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  // copy directory from srcPath to destPath
  let srcPath = pathDir + "/srcDir/";
  let destPath = pathDir + "/destDir/";
  fs.copyDir(srcPath, destPath, 0).then(() => {
    console.info("copy directory succeed");
  }).catch((err: BusinessError) => {
    console.info("copy directory failed with error message: " + err.message + ", error code: " + err.code);
  });

fs.copyDir10+

copyDir(src: string, dest: string, mode?: number, callback: AsyncCallback<void, Array<ConflictFiles>>): void

复制源文件夹至目标路径下,使用Callback异步回调。

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

参数:

参数名 类型 必填 说明
src string 源文件夹的应用沙箱路径。
dest string 目标文件夹的应用沙箱路径。
mode number 复制模式。默认mode为0。
-&nbsp; mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。
-&nbsp; mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。
callback AsyncCallback&lt;void, Array&lt;ConflictFiles&gt;&gt; 异步复制文件夹之后的回调。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import fs, { ConflictFiles } from '@ohos.file.fs';
  // copy directory from srcPath to destPath
  let srcPath = pathDir + "/srcDir/";
  let destPath = pathDir + "/destDir/";
  fs.copyDir(srcPath, destPath, 0, (err: BusinessError<Array<ConflictFiles>>) => {
    if (err && err.code == 13900015) {
      for (let i = 0; i < data.length; i++) {
        console.info("copy directory failed with conflicting files: " + data[i].srcFile + " " + data[i].destFile);
      }
    } else if (err) {
      console.info("copy directory failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      console.info("copy directory succeed");
    }  
  });

fs.copyDirSync10+

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

以同步方法复制源文件夹至目标路径下。

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

参数:

参数名 类型 必填 说明
src string 源文件夹的应用沙箱路径。
dest string 目标文件夹的应用沙箱路径。
mode number 复制模式。默认mode为0。
-&nbsp; mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。
-&nbsp; mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  // copy directory from srcPath to destPath
  let srcPath = pathDir + "/srcDir/";
  let destPath = pathDir + "/destDir/";
  try {
    fs.copyDirSync(srcPath, destPath, 0);
    console.info("copy directory succeed");
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.info("copy directory failed with error message: " + err.message + ", error code: " + err.code);
  }

fs.dup10+

dup(fd: number): File

将文件描述符转化为File。

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

参数:

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

返回值:

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

错误码:

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

示例:

  // convert fd to file
  let fd: number = 0;  // fd comes from other modules
  let file = fs.dup(fd);
  console.info("The name of the file is " + file.name);
  fs.closeSync(file);

fs.mkdir

mkdir(path: string): Promise&lt;void&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

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

fs.mkdir11+

mkdir(path: string, recursion: boolean): Promise

创建目录,使用Promise异步回调。当recursion指定为true,可多层级创建目录。

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

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。
recursion string 是否多层级创建目录。recursion指定为true时,可多层级创建目录。recursion指定为false时,仅可创建单层目录。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let dirPath = pathDir + "/testDir1/testDir2/testDir3";
  fs.mkdir(dirPath, true).then(() => {
    console.info("mkdir succeed");
  }).catch((err: BusinessError) => {
    console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
  });

fs.mkdir

mkdir(path: string, callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

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

fs.mkdir11+

mkdir(path: string, recursion: boolean, callback: AsyncCallback&lt;void&gt;): void

创建目录,使用callback异步回调。当recursion指定为true,可多层级创建目录。

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

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。
recursion string 是否多层级创建目录。recursion指定为true时,可多层级创建目录。recursion指定为false时,仅可创建单层目录。
callback AsyncCallback&lt;void&gt; 异步创建目录操作完成之后的回调。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let dirPath = pathDir + "/testDir1/testDir2/testDir3";
  fs.mkdir(dirPath, true, (err: BusinessError) => {
    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.mkdirSync11+

mkdirSync(path: string): void

以同步方法创建目录。当recursion指定为true,可多层级创建目录。

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

参数:

参数名 类型 必填 说明
path string 目录的应用沙箱路径。
recursion string 是否多层级创建目录。recursion指定为true时,可多层级创建目录。recursion指定为false时,仅可创建单层目录。

错误码:

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

示例:

  let dirPath = pathDir + "/testDir1/testDir2/testDir3";
  fs.mkdirSync(dirPath, true);

fs.open

open(path: string, mode?: number): Promise&lt;File&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;File&gt; Promise对象。返回File对象。

错误码:

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

示例:

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

fs.open

open(path: string, mode?: number, callback: AsyncCallback&lt;File&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  fs.open(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE, (err: BusinessError, file: fs.File) => {
    if (err) {
      console.info("open failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      console.info("file fd: " + file.fd);
    }
    fs.closeSync(file);
  });

fs.openSync

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

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

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

参数:

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

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

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

参数:

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

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回读取的结果。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import buffer from '@ohos.buffer';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
  let arrayBuffer = new ArrayBuffer(4096);
  fs.read(file.fd, arrayBuffer).then((readLen: number) => {
    console.info("read file data succeed");
    let buf = buffer.from(arrayBuffer, 0, readLen);
    console.info(`The content of file: ${buf.toString()}`);
  }).catch((err: BusinessError) => {
    console.info("read file data failed with error message: " + err.message + ", error code: " + err.code);
  }).finally(() => {
    fs.closeSync(file);
  });

fs.read

read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }, callback: AsyncCallback&lt;number&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import buffer from '@ohos.buffer';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
  let arrayBuffer = new ArrayBuffer(4096);
  fs.read(file.fd, arrayBuffer, (err: BusinessError, readLen: number) => {
    if (err) {
      console.info("read failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      console.info("read file data succeed");
      let buf = buffer.from(arrayBuffer, 0, readLen);
      console.info(`The content of file: ${buf.toString()}`);
    }
    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 支持如下选项:
-&nbsp;offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。
-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。

返回值:

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

错误码:

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

示例:

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

fs.rmdir

rmdir(path: string): Promise&lt;void&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

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

fs.rmdir

rmdir(path: string, callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let dirPath = pathDir + "/testDir";
  fs.rmdir(dirPath, (err: BusinessError) => {
    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);

fs.unlink

unlink(path: string): Promise&lt;void&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

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

fs.unlink

unlink(path: string, callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  fs.unlink(filePath, (err: BusinessError) => {
    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&lt;number&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回实际写入的长度。

错误码:

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

示例:

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

fs.write

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

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  let str: string = "hello, world";
  fs.write(file.fd, str, (err: BusinessError, writeLen: number) => {
    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 支持如下选项:
-&nbsp;offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。
-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;‘utf-8’。当前仅支持&nbsp;‘utf-8’。

返回值:

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

错误码:

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

示例:

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

fs.truncate

truncate(file: string|number, len?: number): Promise&lt;void&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

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

fs.truncate

truncate(file: string|number, len?: number, callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let len: number = 5;
  fs.truncate(filePath, len, (err: BusinessError) => {
    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: number = 5;
  fs.truncateSync(filePath, len);

fs.readLines11+

readLines(filePath: string, options?: Options): Promise&lt;ReaderIterator&gt;

逐行读取文件文本内容,使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
filePath string 文件的应用沙箱路径。
options Options 可选项。支持以下选项:
-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;‘utf-8’,仅支持&nbsp;‘utf-8’。

返回值:

类型 说明
Promise&lt;ReaderIterator&gt; Promise对象。返回文件读取迭代器。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import { Options } from '@ohos.file.fs';
  let filePath = pathDir + "/test.txt";
  let options: Options = {
    encoding: 'utf-8'
  };
  fs.readLines(filePath, options).then((readerIterator: fs.ReaderIterator) => {
    for (let it = readerIterator.next(); !it.done; it = readerIterator.next()) {
      console.info("content: " + it.value);
    }
  }).catch((err: BusinessError) => {
    console.info("readLines failed with error message: " + err.message + ", error code: " + err.code);
  });

fs.readLines11+

readLines(filePath: string, options?: Options, callback: AsyncCallback&lt;ReaderIterator&gt;): void

逐行读取文件文本内容,使用callback异步回调。

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

参数:

参数名 类型 必填 说明
filePath string 文件的应用沙箱路径。
options Options 可选项。支持以下选项:
-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;‘utf-8’,仅支持&nbsp;‘utf-8’。
callback AsyncCallback&lt;ReaderIterator&gt; 逐行读取文件文本内容回调。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import { Options } from '@ohos.file.fs';
  let filePath = pathDir + "/test.txt";
  let options: Options = {
    encoding: 'utf-8'
  };
  fs.readLines(filePath, options, (err: BusinessError, readerIterator: fs.ReaderIterator) => {
    if (err) {
      console.info("readLines failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      for (let it = readerIterator.next(); !it.done; it = readerIterator.next()) {
        console.info("content: " + it.value);
      }
    }
  })

fs.readLinesSync

readLinesSync(filePath: string, options?: Options): ReaderIterator

以同步方式逐行读取文件文本内容。

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

参数:

参数名 类型 必填 说明
filePath string 文件的应用沙箱路径。
options Options 可选项。支持以下选项:
-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;‘utf-8’,仅支持&nbsp;‘utf-8’。

返回值:

类型 说明
ReaderIterator 返回文件读取迭代器。

错误码:

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

示例:

  import { Options } from '@ohos.file.fs';
  let filePath = pathDir + "/test.txt";
  let options: Options = {
    encoding: 'utf-8'
  };
  let readerIterator = fs.readLines(filePath, options);
  for (let it = readerIterator.next(); !it.done; it = readerIterator.next()) {
    console.info("content: " + it.value);
  }

ReaderIterator11+

文件读取迭代器。在调用ReaderIterator的方法前,需要先通过readLines方法(同步或异步)来构建一个ReaderIterator实例。

next

next(): ReaderIteratorResult

获取迭代器下一项内容。

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

返回值:

类型 说明
ReaderIteratorResult 文件读取迭代器返回结果。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import { Options } from '@ohos.file.fs';
  let filePath = pathDir + "/test.txt";
  let options: Options = {
    encoding: 'utf-8'
  };
  fs.readLines(filePath, options).then((readerIterator: fs.ReaderIterator) => {
    for (let it = readerIterator.next(); !it.done; it = readerIterator.next()) {
      console.info("content: " + it.value);
    }
  }).catch((err: BusinessError) => {
    console.info("readLines failed with error message: " + err.message + ", error code: " + err.code);
  });

ReaderIteratorResult

文件读取迭代器返回结果,支持ReaderIterator接口使用。

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

名称 类型 说明
done boolean 迭代器是否已完成迭代。
value string 逐行读取的文件文本内容。

fs.readText

readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): Promise&lt;string&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;string&gt; Promise对象。返回读取文件的内容。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  fs.readText(filePath).then((str: string) => {
    console.info("readText succeed:" + str);
  }).catch((err: BusinessError) => {
    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&lt;string&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  class Option {
    offset: number = 0;
    length: number = 0;
    encoding: string = 'utf-8';
  }
  let stat = fs.statSync(filePath);
  let option = new Option();
  option.offset = 1;
  option.length = stat.size;
  fs.readText(filePath, option, (err: BusinessError, str: string) => {
    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 支持如下选项:
-&nbsp;offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。
-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认文件长度。
-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;‘utf-8’,仅支持&nbsp;‘utf-8’。

返回值:

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

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  class Option {
    offset: number = 0;
    length: number = 0;
    encoding: string = 'utf-8';
  }
  let stat = fs.statSync(filePath);
  let option = new Option();
  option.offset = 1;
  option.length = stat.size;
  let str = fs.readTextSync(filePath, option);
  console.info("readText succeed:" + str);

fs.lstat

lstat(path: string): Promise&lt;Stat&gt;

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

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

参数:

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

返回值:

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

错误码:

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

示例:

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

fs.lstat

lstat(path: string, callback: AsyncCallback&lt;Stat&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  fs.lstat(filePath, (err: BusinessError, stat: fs.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";
  fs.lstatSync(filePath);

fs.rename

rename(oldPath: string, newPath: string): Promise&lt;void&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

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

fs.rename

rename(oldPath: string, newPath: string, callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let srcFile = pathDir + "/test.txt";
  let dstFile = pathDir + "/new.txt";
  fs.rename(srcFile, dstFile, (err: BusinessError) => {
    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&lt;void&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

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

fs.fsync

fsync(fd: number, callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath);
  fs.fsync(file.fd, (err: BusinessError) => {
    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&lt;void&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

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

fs.fdatasync

fdatasync(fd: number, callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath);
  fs.fdatasync (file.fd, (err: BusinessError) => {
    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);

fs.symlink

symlink(target: string, srcPath: string): Promise&lt;void&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

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

fs.symlink

symlink(target: string, srcPath: string, callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let srcFile = pathDir + "/test.txt";
  let dstFile = pathDir + "/test";
  fs.symlink(srcFile, dstFile, (err: BusinessError) => {
    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

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

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

参数:

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

options参数说明:

参数名 类型 必填 说明
recursion boolean 是否递归子目录下文件名,默认为false。当recursion为false时,返回当前目录下满足过滤要求的文件名及文件夹名。当recursion为true时,返回此目录下所有满足过滤要求的文件的相对路径(以/开头)。
listNum number 列出文件名数量。当设置0时,列出所有文件,默认为0。
filter Filter 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。

返回值:

类型 说明
Promise&lt;string[]&gt; Promise对象。返回文件名数组。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import fs, { Filter } from '@ohos.file.fs';
  class ListFileOption {
    public recursion: boolean = false;
    public listNum: number = 0;
    public filter: Filter;
  }
  let option = new ListFileOption();
  option.filter.suffix = [".png", ".jpg", ".jpeg"];
  option.filter.displayName = ["*abc", "efg*"];
  option.filter.fileSizeOver = 1024;
  option.filter.lastModifiedAfter = new Date().getTime();
  fs.listFile(pathDir, option).then((filenames: Array<string>) => {
    console.info("listFile succeed");
    for (let i = 0; i < filenames.length; i++) {
      console.info("fileName: %s", filenames[i]);
    }
  }).catch((err: BusinessError) => {
    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): void

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

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

参数:

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

options参数说明:

参数名 类型 必填 说明
recursion boolean 是否递归子目录下文件名,默认为false。当recursion为false时,返回当前目录下满足过滤要求的文件名及文件夹名。当recursion为true时,返回此目录下所有满足过滤要求的文件的相对路径(以/开头)。
listNum number 列出文件名数量。当设置0时,列出所有文件,默认为0。
filter Filter 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import fs, { Filter } from '@ohos.file.fs';
  class ListFileOption {
    public recursion: boolean = false;
    public listNum: number = 0;
    public filter: Filter;
  }
  let option = new ListFileOption();
  option.filter.suffix = [".png", ".jpg", ".jpeg"];
  option.filter.displayName = ["*abc", "efg*"];
  option.filter.fileSizeOver = 1024;
  option.filter.lastModifiedAfter = new Date().getTime();
  fs.listFile(pathDir, option, (err: BusinessError, filenames: Array<string>) => {
    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[]

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

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

参数:

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

options参数说明:

参数名 类型 必填 说明
recursion boolean 是否递归子目录下文件名,默认为false。当recursion为false时,返回当前目录下满足过滤要求的文件名及文件夹名。当recursion为true时,返回此目录下所有满足过滤要求的文件的相对路径(以/开头)。
listNum number 列出文件名数量。当设置0时,列出所有文件,默认为0。
filter Filter 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。

返回值:

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

错误码:

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

示例:

  import fs, { Filter } from '@ohos.file.fs';
  class ListFileOption {
    public recursion: boolean = false;
    public listNum: number = 0;
    public filter: Filter;
  }
  let option = new ListFileOption();
  option.filter.suffix = [".png", ".jpg", ".jpeg"];
  option.filter.displayName = ["*abc", "efg*"];
  option.filter.fileSizeOver = 1024;
  option.filter.lastModifiedAfter = new Date().getTime();
  let filenames = fs.listFileSync(pathDir, option);
  console.info("listFile succeed");
  for (let i = 0; i < filenames.length; i++) {
    console.info("filename: %s", filenames[i]);
  }

fs.lseek11+

lseek(fd: number, offset: number, whence?: WhenceType): number

调整文件偏置指针位置。

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

参数:

参数名 类型 必填 说明
fd number 文件描述符。
offset number 相对偏移位置。
whence WhenceType 偏移指针相对位置类型。

返回值:

类型 说明
number 当前文件偏置指针位置(相对于文件头的偏移量)。

错误码:

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

示例:

  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  console.info('The current offset is at ' + fs.lseek(file.fd, 5, fs.WhenceType.SEEK_SET));
  fs.closeSync(file);

fs.moveDir10+

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

移动源文件夹至目标路径下,使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
src string 源文件夹的应用沙箱路径。
dest string 目标文件夹的应用沙箱路径。
mode number 移动模式。默认mode为0。
-&nbsp;mode为0,文件夹级别抛异常。若目标文件夹下存在与源文件夹名冲突的非空文件夹,则抛出异常。
-&nbsp;mode为1,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。
-&nbsp; mode为2,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。
-&nbsp; mode为3,文件夹级别强制覆盖。移动源文件夹至目标文件夹下,目标文件夹下移动的文件夹内容与源文件夹完全一致。若目标文件夹下存在与源文件夹名冲突的文件夹,该文件夹下所有原始文件将不会保留。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  // move directory from srcPath to destPath
  let srcPath = pathDir + "/srcDir/";
  let destPath = pathDir + "/destDir/";
  fs.moveDir(srcPath, destPath, 1).then(() => {
    console.info("move directory succeed");
  }).catch((err: BusinessError) => {
    console.info("move directory failed with error message: " + err.message + ", error code: " + err.code);
  });

fs.moveDir10+

moveDir(src: string, dest: string, mode?: number, callback: AsyncCallback<void, Array<ConflictFiles>>): void

移动源文件夹至目标路径下,使用Callback异步回调。

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

参数:

参数名 类型 必填 说明
src string 源文件夹的应用沙箱路径。
dest string 目标文件夹的应用沙箱路径。
mode number 移动模式。默认mode为0。
-&nbsp;mode为0,文件夹级别抛异常。若目标文件夹下存在与源文件夹名冲突的文件夹,则抛出异常。
-&nbsp;mode为1,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。
-&nbsp; mode为2,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。
-&nbsp; mode为3,文件夹级别强制覆盖。移动源文件夹至目标文件夹下,目标文件夹下移动的文件夹内容与源文件夹完全一致。若目标文件夹下存在与源文件夹名冲突的文件夹,该文件夹下所有原始文件将不会保留。
callback AsyncCallback&lt;void, Array&lt;ConflictFiles&gt;&gt; 异步移动文件夹之后的回调。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import fs, { ConflictFiles } from '@ohos.file.fs';
  // move directory from srcPath to destPath
  let srcPath = pathDir + "/srcDir/";
  let destPath = pathDir + "/destDir/";
  fs.moveDir(srcPath, destPath, 1, (err: BusinessError<Array<ConflictFiles>>) => {
    if (err && err.code == 13900015) {
      for (let i = 0; i < data.length; i++) {
        console.info("move directory failed with conflicting files: " + data[i].srcFile + " " + data[i].destFile);
      }
    } else if (err) {
      console.info("move directory failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      console.info("move directory succeed");
    }  
  });

fs.moveDirSync10+

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

以同步方法移动源文件夹至目标路径下。

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

参数:

参数名 类型 必填 说明
src string 源文件夹的应用沙箱路径。
dest string 目标文件夹的应用沙箱路径。
mode number 移动模式。默认mode为0。
-&nbsp;mode为0,文件夹级别抛异常。若目标文件夹下存在与源文件夹名冲突的文件夹,则抛出异常。
-&nbsp;mode为1,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。
-&nbsp; mode为2,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。
-&nbsp; mode为3,文件夹级别强制覆盖。移动源文件夹至目标文件夹下,目标文件夹下移动的文件夹内容与源文件夹完全一致。若目标文件夹下存在与源文件夹名冲突的文件夹,该文件夹下所有原始文件将不会保留。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  // move directory from srcPath to destPath
  let srcPath = pathDir + "/srcDir/";
  let destPath = pathDir + "/destDir/";
  try {
    fs.moveDirSync(srcPath, destPath, 1);
    console.info("move directory succeed");
  } catch (err) {
    console.info("move directory failed with error message: " + err.message + ", error code: " + err.code);
  }

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&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let srcPath = pathDir + "/source.txt";
  let destPath = pathDir + "/dest.txt";
  fs.moveFile(srcPath, destPath, 0).then(() => {
    console.info("move file succeed");
  }).catch((err: BusinessError) => {
    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&lt;void&gt; 异步移动文件之后的回调。

错误码:

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

示例:

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

fs.moveFileSync

moveFileSync(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&lt;string&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;string&gt; Promise对象。返回生成的唯一目录路径。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  fs.mkdtemp(pathDir + "/XXXXXX").then((dir: string) => {
    console.info("mkdtemp succeed:" + dir);
  }).catch((err: BusinessError) => {
    console.info("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
  });

fs.mkdtemp

mkdtemp(prefix: string, callback: AsyncCallback&lt;string&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  fs.mkdtemp(pathDir + "/XXXXXX", (err: BusinessError, res: string) => {
    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.utimes11+

utimes(path: string, mtime: number): void

修改文件最近访问时间属性。

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

参数: | 参数名 |类型 |必填 |说明 | |————|——|——|————————————————————| |path|string| 是 |文件的应用沙箱路径。| |mtime|number| 是 |待更新的时间戳。自1970年1月1日起至目标时间的毫秒数。仅支持修改文件最近访问时间属性。|

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  fs.writeSync(file.fd, 'test data');
  fs.closeSync(file);
  fs.utimes(filePath, new Date().getTime());

fs.createRandomAccessFile10+

createRandomAccessFile(file: string|File, mode?: number): Promise&lt;RandomAccessFile&gt;

基于文件路径或文件对象创建RandomAccessFile文件对象,使用Promise异步回调。

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

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

返回值:

类型 说明
Promise&lt;RandomAccessFile&gt; Promise对象。返回RandomAccessFile文件对象的结果。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  fs.createRandomAccessFile(file).then((randomAccessFile: fs.RandomAccessFile) => {
    console.info("randomAccessFile fd: " + randomAccessFile.fd);
    randomAccessFile.close();
  }).catch((err: BusinessError) => {
    console.info("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
  }).finally(() => {
    fs.closeSync(file);
  });

fs.createRandomAccessFile10+

createRandomAccessFile(file: string|File, mode?: number, callback: AsyncCallback&lt;RandomAccessFile&gt;): void

基于文件路径或文件对象创建RandomAccessFile文件对象,使用callback异步回调。

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  fs.createRandomAccessFile(file, (err: BusinessError, randomAccessFile: fs.RandomAccessFile) => {
    if (err) {
      console.info("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      console.info("randomAccessFilefile fd: " + randomAccessFile.fd);
      randomAccessFile.close();
    }
    fs.closeSync(file);
  });

fs.createRandomAccessFileSync10+

createRandomAccessFileSync(file: string|File, mode?: number): RandomAccessFile

基于文件路径或文件对象创建RandomAccessFile文件对象。

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

参数:

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

返回值:

类型 说明
RandomAccessFile 返回RandomAccessFile文件对象的结果。

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  let randomaccessfile = fs.createRandomAccessFileSync(file);
  randomaccessfile.close();

fs.createStream

createStream(path: string, mode: string): Promise&lt;Stream&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;Stream&gt; Promise对象。返回文件流的结果。

错误码:

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

示例:

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

fs.createStream

createStream(path: string, mode: string, callback: AsyncCallback&lt;Stream&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  fs.createStream(filePath, "r+", (err: BusinessError, stream: fs.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 -&nbsp;r:打开只读文件,该文件必须存在。
-&nbsp;r+:打开可读写的文件,该文件必须存在。
-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

返回值:

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

错误码:

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

示例:

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

fs.fdopenStream

fdopenStream(fd: number, mode: string): Promise&lt;Stream&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;Stream&gt; Promise对象。返回文件流的结果。

错误码:

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

示例:

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

fs.fdopenStream

fdopenStream(fd: number, mode: string, callback: AsyncCallback&lt;Stream&gt;): void

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

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

参数:

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

错误码:

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

示例:

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

fs.fdopenStreamSync

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

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

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

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
mode string -&nbsp;r:打开只读文件,该文件必须存在。
-&nbsp;r+:打开可读写的文件,该文件必须存在。
-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。
-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
-&nbsp;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+");
  ss.closeSync();
  fs.closeSync(file);

fs.createWatcher10+

createWatcher(path: string, events: number, listener: WatchEventListener): Watcher

创建Watcher对象,用来监听文件或目录变动。

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

参数:

参数名 类型 必填 说明
path string 监听文件或目录的沙箱路径。
events number 监听变动的事件集,多个事件通过或(|)的方式进行集合。
-&nbsp;0x1: IN_ACCESS, 文件被访问。
-&nbsp;0x2: IN_MODIFY,文件内容被修改。
-&nbsp;0x4: IN_ATTRIB,文件元数据被修改。
-&nbsp;0x8: IN_CLOSE_WRITE,打开进行写操作的文件被关闭。
-&nbsp;0x10: IN_CLOSE_NOWRITE,打开未进行写操作的文件或目录被关闭。
-&nbsp;0x20: IN_OPEN,文件或目录被打开。
-&nbsp;0x40: IN_MOVED_FROM,监听目录中文件被移动走。
-&nbsp;0x80: IN_MOVED_TO,监听目录中文件被移动过来。
-&nbsp;0x100: IN_CREATE,监听目录中文件或子目录被创建。
-&nbsp;0x200: IN_DELETE,监听目录中文件或子目录被删除。
-&nbsp;0x400: IN_DELETE_SELF,监听的目录被删除,删除后监听停止。
-&nbsp;0x800: IN_MOVE_SELF,监听的文化或目录被移动,移动后监听继续。
-&nbsp;0xfff: IN_ALL_EVENTS,监听以上所有事件。
listener WatchEventListener 监听事件发生后的回调。监听事件每发生一次,回调一次。

返回值:

类型 说明
Watcher 返回Watcher对象。

错误码:

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

示例:

  import fs, { WatchEvent } from '@ohos.file.fs';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  let watcher = fs.createWatcher(filePath, 0x2|0x10, (watchEvent: WatchEvent) => {
    if (watchEvent.event == 0x2) {
      console.info(watchEvent.fileName + 'was modified');
    } else if (watchEvent.event == 0x10) {
      console.info(watchEvent.fileName + 'was closed');
    }
  });
  watcher.start();
  fs.writeSync(file.fd, 'test');
  fs.closeSync(file);
  watcher.stop();

WatchEventListener10+

(event: WatchEvent): void

事件监听类。

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

参数:

参数名 类型 必填 说明
event WatchEvent 回调的事件类。

WatchEvent10+

事件类

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

名称 类型 可读 可写 说明
fileName string 发生监听事件的文件名。
event number 发生的监听事件。与createWatcher中events事件集一致。
cookie number 绑定相关事件的cookie。当前仅支持事件IN_MOVED_FROM与IN_MOVED_TO,同一个文件的移动事件IN_MOVED_FROM和IN_MOVED_TO具有相同的cookie值。

Stat

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

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

属性

名称 类型 可读 可写 说明
ino number 标识该文件。通常同设备上的不同文件的INO不同。
mode number 表示文件权限,各特征位的含义如下:
说明: 以下值为八进制,取得的返回值为十进制,请换算后查看。
-&nbsp;0o400:用户读,对于普通文件,所有者可读取文件;对于目录,所有者可读取目录项。
-&nbsp;0o200:用户写,对于普通文件,所有者可写入文件;对于目录,所有者可创建/删除目录项。
-&nbsp;0o100:用户执行,对于普通文件,所有者可执行文件;对于目录,所有者可在目录中搜索给定路径名。
-&nbsp;0o040:用户组读,对于普通文件,所有用户组可读取文件;对于目录,所有用户组可读取目录项。
-&nbsp;0o020:用户组写,对于普通文件,所有用户组可写入文件;对于目录,所有用户组可创建/删除目录项。
-&nbsp;0o010:用户组执行,对于普通文件,所有用户组可执行文件;对于目录,所有用户组是否可在目录中搜索给定路径名。
-&nbsp;0o004:其他读,对于普通文件,其余用户可读取文件;对于目录,其他用户组可读取目录项。
-&nbsp;0o002:其他写,对于普通文件,其余用户可写入文件;对于目录,其他用户组可创建/删除目录项。
-&nbsp;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 表示文件是否是&nbsp;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

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&lt;void&gt;

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

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。返回表示异步关闭文件流的结果。

错误码:

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

示例:

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

close

close(callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let ss = fs.createStreamSync(filePath, "r+");
  ss.close((err: BusinessError) => {
    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&lt;void&gt;

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

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。返回表示异步刷新文件流的结果。

错误码:

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

示例:

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

flush

flush(callback: AsyncCallback&lt;void&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let ss = fs.createStreamSync(filePath, "r+");
  ss.flush((err: BusinessError) => {
    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&lt;number&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回实际写入的长度。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let ss = fs.createStreamSync(filePath, "r+");
  class Option {
    offset: number = 0;
    length: number = 0;
    encoding: string = 'utf-8';
  }
  let option = new Option();
  option.offset = 5;
  option.length = 5;
  ss.write("hello, world", option).then((number: number) => {
    console.info("write succeed and size is:" + number);
  }).catch((err: BusinessError) => {
    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&lt;number&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let ss = fs.createStreamSync(filePath, "r+");
  class Option {
    offset: number = 0;
    length: number = 0;
    encoding: string = 'utf-8';
  }
  let option = new Option();
  option.offset = 5;
  option.length = 5;
  ss.write("hello, world", option, (err: BusinessError, bytesWritten: number) => {
    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 支持如下选项:
-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。
-&nbsp;offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;‘utf-8’。仅支持&nbsp;‘utf-8’。

返回值:

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

错误码:

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

示例:

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

read

read(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise&lt;number&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回读取的结果。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import buffer from '@ohos.buffer';
  let filePath = pathDir + "/test.txt";
  let ss = fs.createStreamSync(filePath, "r+");
  let arrayBuffer = new ArrayBuffer(4096);
  class Option {
    offset: number = 0;
    length: number = 0;
  }
  let option = new Option();
  option.offset = 5;
  option.length = 5;
  ss.read(arrayBuffer, option).then((readLen: number) => {
    console.info("read data succeed");
    let buf = buffer.from(arrayBuffer, 0, readLen);
    console.log(`The content of file: ${buf.toString()}`);
  }).catch((err: BusinessError) => {
    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&lt;number&gt;): void

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  import buffer from '@ohos.buffer';
  let filePath = pathDir + "/test.txt";
  let ss = fs.createStreamSync(filePath, "r+");
  let arrayBuffer = new ArrayBuffer(4096);
  class Option {
    offset: number = 0;
    length: number = 0;
  }
  let option = new Option();
  option.offset = 5;
  option.length = 5;
  ss.read(arrayBuffer, option, (err: BusinessError, readLen: number) => {
    if (err) {
      console.info("read stream failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      console.info("read data succeed");
      let buf = buffer.from(arrayBuffer, 0, readLen);
      console.log(`The content of file: ${buf.toString()}`);
    }
  });

readSync

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

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

File

由open接口打开的File对象。

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

属性

名称 类型 可读 可写 说明
fd number 打开的文件描述符。
path10+ string 文件路径。
name10+ string 文件名。

getParent11+

getParent(): string

获取File对象对应文件父目录。

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

返回值:

类型 说明
string 返回父目录路径。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  console.info('The parent path is: ' + file.getParent());
  fs.closeSync(file);

lock

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

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

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

参数:

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

返回值:

类型 说明
Promise&lt;void&gt; Promise对象。无返回值。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  file.lock(true).then(() => {
    console.log("lock file successful");
  }).catch((err: BusinessError) => {
    console.info("lock file failed with error message: " + err.message + ", error code: " + err.code);
  }).finally(() => {
    fs.closeSync(file);
  });

lock

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

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  file.lock(true, (err: BusinessError) => {
    if (err) {
      console.info("lock file failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      console.log("lock file successful");
    }
    fs.closeSync(file);
  });

tryLock

tryLock(exclusive?: boolean): void

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

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

参数:

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

错误码:

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

示例:

  let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  file.tryLock(true);
  console.log("lock file successful");
  fs.closeSync(file);

unlock

unlock(): void

以同步方式给文件解锁。

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

错误码:

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

示例:

  let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  file.tryLock(true);
  file.unlock();
  console.log("unlock file successful");
  fs.closeSync(file);

RandomAccessFile

随机读写文件流,在调用RandomAccessFile的方法前,需要先通过createRandomAccess()方法(同步或异步)来构建一个RandomAccessFile实例。

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

属性

名称 类型 可读 可写 说明
fd number 打开的文件描述符。
filePointer number RandomAccessFile对象的偏置指针。

setFilePointer10+

setFilePointer(): void

设置文件偏置指针

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

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  let randomAccessFile = fs.createRandomAccessFileSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  randomAccessFile.setFilePointer(1);
  randomAccessFile.close();

close10+

close(): void

同步关闭RandomAccessFile对象。

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

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  let randomAccessFile = fs.createRandomAccessFileSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
  randomAccessFile.close();

write10+

write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise&lt;number&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回实际写入的长度。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  let randomaccessfile = fs.createRandomAccessFileSync(file);
  let bufferLength: number = 4096;
  class Option {
    offset: number = 0;
    length: number = 0;
    encoding: string = 'utf-8';
  }
  let option = new Option();
  option.offset = 1;
  option.length = 5;
  let arrayBuffer = new ArrayBuffer(bufferLength);
  randomaccessfile.write(arrayBuffer, option).then((bytesWritten: number) => {
    console.info("randomAccessFile bytesWritten: " + bytesWritten);
  }).catch((err: BusinessError) => {
    console.info("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
  }).finally(() => {
    randomaccessfile.close();
    fs.closeSync(file);
  });

write10+

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

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

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

参数:

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

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  let randomAccessFile = fs.createRandomAccessFileSync(file);
  let bufferLength: number = 4096;
  class Option {
    offset: number = 0;
    length: number = bufferLength;
    encoding: string = 'utf-8';
  }
  let option = new Option();
  option.offset = 1;
  let arrayBuffer = new ArrayBuffer(bufferLength);
  randomAccessFile.write(arrayBuffer, option, (err: BusinessError, bytesWritten: number) => {
    if (err) {
      console.info("write failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      if (bytesWritten) {
        console.info("write succeed and size is:" + bytesWritten);
      }
    }
    randomAccessFile.close();
    fs.closeSync(file);
  });

writeSync10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  let randomaccessfile = fs.createRandomAccessFileSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  class Option {
    offset: number = 0;
    length: number = 0;
    encoding: string = 'utf-8';
  }
  let option = new Option();
  option.offset = 5;
  option.length = 5;
  let bytesWritten = randomaccessfile.writeSync("hello, world", option);
  randomaccessfile.close();

read10+

read(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise&lt;number&gt;

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

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

参数:

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

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回读取的结果。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  let randomaccessfile = fs.createRandomAccessFileSync(file);
  let bufferLength: number = 4096;
  class Option {
    offset: number = 0;
    length: number = bufferLength;
  }
  let option = new Option();
  option.offset = 1;
  option.length = 5;
  let arrayBuffer = new ArrayBuffer(bufferLength);
  randomaccessfile.read(arrayBuffer, option).then((readLength: number) => {
    console.info("randomAccessFile readLength: " + readLength);
  }).catch((err: BusinessError) => {
    console.info("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
  }).finally(() => {
    randomaccessfile.close();
    fs.closeSync(file);
  });

read10+

read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback&lt;number&gt;): void

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

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

参数:

参数名 类型 必填 说明
buffer ArrayBuffer 用于读取文件的缓冲区。
options Object 支持如下选项:
-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。
-&nbsp;offset,number类型,表示期望读取文件位置(基于当前filePointer加上offset的位置)。可选,默认从偏置指针(filePointer)开始读.
callback AsyncCallback&lt;number&gt; 异步从流文件读取数据之后的回调。

错误码:

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

示例:

  import { BusinessError } from '@ohos.base';
  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  let randomaccessfile = fs.createRandomAccessFileSync(file);
  let length: number = 20;
  class Option {
    offset: number = 0;
    length: number = length;
  }
  let option = new Option();
  option.offset = 1;
  option.length = 5;
  let arrayBuffer = new ArrayBuffer(length);
  randomaccessfile.read(arrayBuffer, option, (err: BusinessError, readLength: number) => {
    if (err) {
      console.info("read failed with error message: " + err.message + ", error code: " + err.code);
    } else {
      if (readLength) {
        console.info("read succeed and size is:" + readLength);
      }
    }
    randomAccessFile.close();
    fs.closeSync(file);
  });

readSync10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
  let randomaccessfile = fs.createRandomAccessFileSync(file);
  let length: number = 4096;
  let arrayBuffer = new ArrayBuffer(length);
  let readLength = randomaccessfile.readSync(arrayBuffer);
  randomaccessfile.close();
  fs.closeSync(file);

Watcher10+

文件目录变化监听对象。由createWatcher接口获得。

start10+

start(): void

开启监听。

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

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  let watcher = fs.createWatcher(filePath, 0xfff, () => {});
  watcher.start();
  watcher.stop();

stop10+

stop(): void

停止监听。

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

错误码:

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

示例:

  let filePath = pathDir + "/test.txt";
  let watcher = fs.createWatcher(filePath, 0xfff, () => {});
  watcher.start();
  watcher.stop();

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的方式打开文件。

Filter10+

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

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

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

ConflictFiles10+

冲突文件信息,支持copyDir及moveDir接口使用。

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

名称 类型 说明
srcFile string 源冲突文件路径。
destFile string 目标冲突文件路径。

Options11+

可选项类型,支持readLines接口使用。

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

名称 类型 说明
encoding string 文件编码方式。可选项。

WhenceType11+

枚举,文件偏移指针相对偏移位置类型,支持lseek接口使用。

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

名称 说明
SEEK_SET 0 文件起始位置处。
SEEK_CUR 1 当前文件偏置指针位置处。
SEEK_END 2 文件末尾位置处。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙接口

harmony 鸿蒙系统公共事件定义(待停用)

harmony 鸿蒙系统公共事件定义

harmony 鸿蒙开发说明

harmony 鸿蒙企业设备管理概述(仅对系统应用开放)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)

harmony 鸿蒙@ohos.distributedBundle (分布式包管理)

harmony 鸿蒙@ohos.bundle (Bundle模块)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)

0  赞