当前位置:   article > 正文

HarmonyOS实战开发:@ohos.file.fs (文件管理)_harmonyos文件管理

harmonyos文件管理

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

说明:

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

导入模块

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

使用说明

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

Stage模型

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

FA模型

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

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

fs.stat

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

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

fs.stat

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. fs.stat(pathDir, (err: BusinessError, stat: fs.Stat) => {
  3. if (err) {
  4. console.error("get file info failed with error message: " + err.message + ", error code: " + err.code);
  5. } else {
  6. console.info("get file info succeed, the size of file is " + stat.size);
  7. }
  8. });
Copy to clipboardErrorCopied

fs.statSync

statSync(file: string | number): Stat

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

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

参数:

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

返回值:

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

错误码:

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

示例:

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

fs.access

access(path: string): Promise<boolean>

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

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

参数:

参数名类型必填说明
路径字符串文件应用沙箱路径。

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.access(filePath).then((res: boolean) => {
  4. if (res) {
  5. console.info("file exists");
  6. } else {
  7. console.info("file not exists");
  8. }
  9. }).catch((err: BusinessError) => {
  10. console.error("access failed with error message: " + err.message + ", error code: " + err.code);
  11. });
Copy to clipboardErrorCopied

fs.access

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.access(filePath, (err: BusinessError, res: boolean) => {
  4. if (err) {
  5. console.error("access failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. if (res) {
  8. console.info("file exists");
  9. } else {
  10. console.info("file not exists");
  11. }
  12. }
  13. });
Copy to clipboardErrorCopied

fs.accessSync

accessSync(path: string): boolean

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. try {
  4. let res = fs.accessSync(filePath);
  5. if (res) {
  6. console.info("file exists");
  7. } else {
  8. console.info("file not exists");
  9. }
  10. } catch(error) {
  11. let err: BusinessError = error as BusinessError;
  12. console.error("accessSync failed with error message: " + err.message + ", error code: " + err.code);
  13. }
Copy to clipboardErrorCopied

fs.close

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

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

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

参数:

参数名类型必填说明
filenumber | File已打开的File对象或已打开的文件描述符fd,关闭后file对象或文件描述符不再具备实际意义,不可再用于进行读写等操作。

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath);
  4. fs.close(file).then(() => {
  5. console.info("close file succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("close file failed with error message: " + err.message + ", error code: " + err.code);
  8. });
Copy to clipboardErrorCopied

fs.close

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

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

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

参数:

参数名类型必填说明
filenumber | File已打开的File对象或已打开的文件描述符fd,关闭后file对象或文件描述符不再具备实际意义,不可再用于进行读写等操作。
callbackAsyncCallback<void>异步关闭文件之后的回调。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath);
  4. fs.close(file, (err: BusinessError) => {
  5. if (err) {
  6. console.error("close file failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("close file succeed");
  9. }
  10. });
Copy to clipboardErrorCopied

fs.closeSync

closeSync(file: number | File): void

以同步方法关闭文件。

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

参数:

参数名类型必填说明
filenumber | File已打开的File对象或已打开的文件描述符fd,关闭后file对象或文件描述符不再具备实际意义,不可再用于进行读写等操作。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath);
  3. fs.closeSync(file);
Copy to clipboardErrorCopied

fs.copyFile

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcPath = pathDir + "/srcDir/test.txt";
  3. let dstPath = pathDir + "/dstDir/test.txt";
  4. fs.copyFile(srcPath, dstPath).then(() => {
  5. console.info("copy file succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("copy file failed with error message: " + err.message + ", error code: " + err.code);
  8. });
Copy to clipboardErrorCopied

fs.copyFile

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

复制文件,可设置覆盖文件的方式,使用callback异步回调。

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcPath = pathDir + "/srcDir/test.txt";
  3. let dstPath = pathDir + "/dstDir/test.txt";
  4. fs.copyFile(srcPath, dstPath, 0, (err: BusinessError) => {
  5. if (err) {
  6. console.error("copy file failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("copy file succeed");
  9. }
  10. });
Copy to clipboardErrorCopied

fs.copyFile

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

复制文件,覆盖方式为完全覆盖目标文件,未覆盖部分将被裁切。使用callback异步回调。

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

参数:

参数名类型必填说明
srcstring | number待复制文件的路径或待复制文件的文件描述符。
deststring | number目标文件路径或目标文件的文件描述符。
callbackAsyncCallback<void>异步复制文件之后的回调。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcPath = pathDir + "/srcDir/test.txt";
  3. let dstPath = pathDir + "/dstDir/test.txt";
  4. fs.copyFile(srcPath, dstPath, (err: BusinessError) => {
  5. if (err) {
  6. console.error("copy file failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("copy file succeed");
  9. }
  10. });
Copy to clipboardErrorCopied

fs.copyFileSync

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

以同步方法复制文件。

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

参数:

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

错误码:

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

示例:

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

fs.copyDir10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. // copy directory from srcPath to destPath
  3. let srcPath = pathDir + "/srcDir/";
  4. let destPath = pathDir + "/destDir/";
  5. fs.copyDir(srcPath, destPath, 0).then(() => {
  6. console.info("copy directory succeed");
  7. }).catch((err: BusinessError<Array<ConflictFiles>>) => {
  8. if (err.code == 13900015) {
  9. for (let i = 0; i < err.data.length; i++) {
  10. console.error("copy directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
  11. }
  12. } else (err) {
  13. console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
  14. }
  15. });
Copy to clipboardErrorCopied

fs.copyDir10+

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

复制源文件夹至目标路径下,可设置复制模式。使用callback异步回调。

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import fs, { ConflictFiles } from '@ohos.file.fs';
  3. // copy directory from srcPath to destPath
  4. let srcPath = pathDir + "/srcDir/";
  5. let destPath = pathDir + "/destDir/";
  6. fs.copyDir(srcPath, destPath, 0, (err: BusinessError<Array<ConflictFiles>>) => {
  7. if (err && err.code == 13900015) {
  8. for (let i = 0; i < err.data.length; i++) {
  9. console.error("copy directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
  10. }
  11. } else if (err) {
  12. console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
  13. } else {
  14. console.info("copy directory succeed");
  15. }
  16. });
Copy to clipboardErrorCopied

fs.copyDir10+

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

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

当目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。

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

参数:

参数名类型必填说明
srcstring源文件夹的应用沙箱路径。
deststring目标文件夹的应用沙箱路径。
callbackAsyncCallback<void, Array<ConflictFiles>>异步复制文件夹之后的回调。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import fs, { ConflictFiles } from '@ohos.file.fs';
  3. // copy directory from srcPath to destPath
  4. let srcPath = pathDir + "/srcDir/";
  5. let destPath = pathDir + "/destDir/";
  6. fs.copyDir(srcPath, destPath, (err: BusinessError<Array<ConflictFiles>>) => {
  7. if (err && err.code == 13900015) {
  8. for (let i = 0; i < err.data.length; i++) {
  9. console.error("copy directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
  10. }
  11. } else if (err) {
  12. console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
  13. } else {
  14. console.info("copy directory succeed");
  15. }
  16. });
Copy to clipboardErrorCopied

fs.copyDirSync10+

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import fs, { ConflictFiles } from '@ohos.file.fs';
  3. // copy directory from srcPath to destPath
  4. let srcPath = pathDir + "/srcDir/";
  5. let destPath = pathDir + "/destDir/";
  6. try {
  7. fs.copyDirSync(srcPath, destPath, 0);
  8. console.info("copy directory succeed");
  9. } catch (error) {
  10. let err: BusinessError<Array<ConflictFiles>> = error as BusinessError<Array<ConflictFiles>>;
  11. if (err.code == 13900015) {
  12. for (let i = 0; i < err.data.length; i++) {
  13. console.error("copy directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
  14. }
  15. } else {
  16. console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
  17. }
  18. }
Copy to clipboardErrorCopied

fs.dup10+

dup(fd: number): File

将文件描述符转化为File。

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

参数:

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

返回值:

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

错误码:

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

示例:

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

fs.mkdir

mkdir(path: string): Promise<void>

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let dirPath = pathDir + "/testDir";
  3. fs.mkdir(dirPath).then(() => {
  4. console.info("mkdir succeed");
  5. }).catch((err: BusinessError) => {
  6. console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
  7. });
Copy to clipboardErrorCopied

fs.mkdir

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let dirPath = pathDir + "/testDir";
  3. fs.mkdir(dirPath, (err: BusinessError) => {
  4. if (err) {
  5. console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("mkdir succeed");
  8. }
  9. });
Copy to clipboardErrorCopied

fs.mkdirSync

mkdirSync(path: string): void

以同步方法创建目录。

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

参数:

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

错误码:

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

示例:

  1. let dirPath = pathDir + "/testDir";
  2. fs.mkdirSync(dirPath);
Copy to clipboardErrorCopied

fs.open

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

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

fs.open

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

打开文件,可设置打开文件的选项。使用callback异步回调。

支持使用URI打开文件。

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE, (err: BusinessError, file: fs.File) => {
  4. if (err) {
  5. console.error("open failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("file fd: " + file.fd);
  8. }
  9. fs.closeSync(file);
  10. });
Copy to clipboardErrorCopied

fs.open

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

以只读模式打开文件。使用callback异步回调。

支持使用URI打开文件。

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

参数:

参数名类型必填说明
pathstring文件的应用沙箱路径或URI。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.open(filePath, (err: BusinessError, file: fs.File) => {
  4. if (err) {
  5. console.error("open failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("file fd: " + file.fd);
  8. }
  9. fs.closeSync(file);
  10. });
Copy to clipboardErrorCopied

fs.openSync

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  3. console.info("file fd: " + file.fd);
  4. fs.closeSync(file);
Copy to clipboardErrorCopied

fs.read

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import buffer from '@ohos.buffer';
  3. let filePath = pathDir + "/test.txt";
  4. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
  5. let arrayBuffer = new ArrayBuffer(4096);
  6. fs.read(file.fd, arrayBuffer).then((readLen: number) => {
  7. console.info("read file data succeed");
  8. let buf = buffer.from(arrayBuffer, 0, readLen);
  9. console.info(`The content of file: ${buf.toString()}`);
  10. }).catch((err: BusinessError) => {
  11. console.error("read file data failed with error message: " + err.message + ", error code: " + err.code);
  12. }).finally(() => {
  13. fs.closeSync(file);
  14. });
Copy to clipboardErrorCopied

fs.read

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import buffer from '@ohos.buffer';
  3. let filePath = pathDir + "/test.txt";
  4. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
  5. let arrayBuffer = new ArrayBuffer(4096);
  6. fs.read(file.fd, arrayBuffer, (err: BusinessError, readLen: number) => {
  7. if (err) {
  8. console.error("read failed with error message: " + err.message + ", error code: " + err.code);
  9. } else {
  10. console.info("read file data succeed");
  11. let buf = buffer.from(arrayBuffer, 0, readLen);
  12. console.info(`The content of file: ${buf.toString()}`);
  13. }
  14. fs.closeSync(file);
  15. });
Copy to clipboardErrorCopied

fs.readSync

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

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

fs.rmdir

rmdir(path: string): Promise<void>

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let dirPath = pathDir + "/testDir";
  3. fs.rmdir(dirPath).then(() => {
  4. console.info("rmdir succeed");
  5. }).catch((err: BusinessError) => {
  6. console.error("rmdir failed with error message: " + err.message + ", error code: " + err.code);
  7. });
Copy to clipboardErrorCopied

fs.rmdir

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let dirPath = pathDir + "/testDir";
  3. fs.rmdir(dirPath, (err: BusinessError) => {
  4. if (err) {
  5. console.error("rmdir failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("rmdir succeed");
  8. }
  9. });
Copy to clipboardErrorCopied

fs.rmdirSync

rmdirSync(path: string): void

以同步方法删除目录。

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

参数:

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

错误码:

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

示例:

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

unlink(path: string): Promise<void>

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.unlink(filePath).then(() => {
  4. console.info("remove file succeed");
  5. }).catch((err: BusinessError) => {
  6. console.error("remove file failed with error message: " + err.message + ", error code: " + err.code);
  7. });
复制到剪贴板错误复制

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.unlink(filePath, (err: BusinessError) => {
  4. if (err) {
  5. console.error("remove file failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("remove file succeed");
  8. }
  9. });
复制到剪贴板错误复制

fs.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

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

参数:

参数名类型必填说明
路径字符串文件的应用沙箱路径。

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. fs.unlinkSync(filePath);
复制到剪贴板错误复制

fs.write

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

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

fs.write

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

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

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

参数:

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

错误码:

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

示例:

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

fs.writeSync

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  3. let str: string = "hello, world";
  4. let writeLen = fs.writeSync(file.fd, str);
  5. console.info("write data to file succeed and size is:" + writeLen);
  6. fs.closeSync(file);
复制到剪贴板错误复制

fs.truncate

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

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

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

参数:

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

返回值:

类型说明
承诺<无效>Promise对象。无返回值。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let len: number = 5;
  4. fs.truncate(filePath, len).then(() => {
  5. console.info("truncate file succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("truncate file failed with error message: " + err.message + ", error code: " + err.code);
  8. });
复制到剪贴板错误复制

fs.truncate

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let len: number = 5;
  4. fs.truncate(filePath, len, (err: BusinessError) => {
  5. if (err) {
  6. console.error("truncate failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("truncate succeed");
  9. }
  10. });
复制到剪贴板错误复制

fs.truncateSync

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

以同步方法截断文件。

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

参数:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let len: number = 5;
  3. fs.truncateSync(filePath, len);
Copy to clipboardErrorCopied

fs.readText

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.readText(filePath).then((str: string) => {
  4. console.info("readText succeed:" + str);
  5. }).catch((err: BusinessError) => {
  6. console.error("readText failed with error message: " + err.message + ", error code: " + err.code);
  7. });
Copy to clipboardErrorCopied

fs.readText

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. class Option {
  4. offset: number = 0;
  5. length: number = 0;
  6. encoding: string = 'utf-8';
  7. }
  8. let stat = fs.statSync(filePath);
  9. let option = new Option();
  10. option.offset = 1;
  11. option.length = stat.size;
  12. fs.readText(filePath, option, (err: BusinessError, str: string) => {
  13. if (err) {
  14. console.error("readText failed with error message: " + err.message + ", error code: " + err.code);
  15. } else {
  16. console.info("readText succeed:" + str);
  17. }
  18. });
Copy to clipboardErrorCopied

fs.readTextSync

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. class Option {
  3. offset: number = 0;
  4. length: number = 0;
  5. encoding: string = 'utf-8';
  6. }
  7. let stat = fs.statSync(filePath);
  8. let option = new Option();
  9. option.offset = 1;
  10. option.length = stat.size;
  11. let str = fs.readTextSync(filePath, option);
  12. console.info("readText succeed:" + str);
复制到剪贴板错误复制

fs.lstat

lstat(path: string): Promise<Stat>

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

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

参数:

参数名类型必填说明
路径字符串文件的应用沙箱路径。

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/linkToFile";
  3. fs.lstat(filePath).then((stat: fs.Stat) => {
  4. console.info("lstat succeed, the size of file is " + stat.size);
  5. }).catch((err: BusinessError) => {
  6. console.error("lstat failed with error message: " + err.message + ", error code: " + err.code);
  7. });
复制到剪贴板错误复制

fs.lstat

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/linkToFile";
  3. fs.lstat(filePath, (err: BusinessError, stat: fs.Stat) => {
  4. if (err) {
  5. console.error("lstat failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("lstat succeed, the size of file is " + stat.size);
  8. }
  9. });
复制到剪贴板错误复制

fs.lstatSync

lstatSync(path: string): Stat

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/linkToFile";
  2. fs.lstatSync(filePath);
Copy to clipboardErrorCopied

fs.rename

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcFile = pathDir + "/test.txt";
  3. let dstFile = pathDir + "/new.txt";
  4. fs.rename(srcFile, dstFile).then(() => {
  5. console.info("rename succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("rename failed with error message: " + err.message + ", error code: " + err.code);
  8. });
Copy to clipboardErrorCopied

fs.rename

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcFile = pathDir + "/test.txt";
  3. let dstFile = pathDir + "/new.txt";
  4. fs.rename(srcFile, dstFile, (err: BusinessError) => {
  5. if (err) {
  6. console.error("rename failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("rename succeed");
  9. }
  10. });
Copy to clipboardErrorCopied

fs.renameSync

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

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

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

参数:

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

错误码:

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

示例:

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

fs.fsync

fsync(fd: number): Promise<void>

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath);
  4. fs.fsync(file.fd).then(() => {
  5. console.info("sync data succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("sync data failed with error message: " + err.message + ", error code: " + err.code);
  8. }).finally(() => {
  9. fs.closeSync(file);
  10. });
Copy to clipboardErrorCopied

fs.fsync

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath);
  4. fs.fsync(file.fd, (err: BusinessError) => {
  5. if (err) {
  6. console.error("fsync failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("fsync succeed");
  9. }
  10. fs.closeSync(file);
  11. });
Copy to clipboardErrorCopied

fs.fsyncSync

fsyncSync(fd: number): void

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

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

参数:

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

错误码:

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

示例:

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

fs.fdatasync

fdatasync(fd: number): Promise<void>

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath);
  4. fs.fdatasync(file.fd).then(() => {
  5. console.info("sync data succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("sync data failed with error message: " + err.message + ", error code: " + err.code);
  8. }).finally(() => {
  9. fs.closeSync(file);
  10. });
Copy to clipboardErrorCopied

fs.fdatasync

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath);
  4. fs.fdatasync (file.fd, (err: BusinessError) => {
  5. if (err) {
  6. console.error("fdatasync failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("fdatasync succeed");
  9. }
  10. fs.closeSync(file);
  11. });
Copy to clipboardErrorCopied

fs.fdatasyncSync

fdatasyncSync(fd: number): void

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

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

参数:

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

错误码:

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

示例:

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

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcFile = pathDir + "/test.txt";
  3. let dstFile = pathDir + "/test";
  4. fs.symlink(srcFile, dstFile).then(() => {
  5. console.info("symlink succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("symlink failed with error message: " + err.message + ", error code: " + err.code);
  8. });
Copy to clipboardErrorCopied

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcFile = pathDir + "/test.txt";
  3. let dstFile = pathDir + "/test";
  4. fs.symlink(srcFile, dstFile, (err: BusinessError) => {
  5. if (err) {
  6. console.error("symlink failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("symlink succeed");
  9. }
  10. });
Copy to clipboardErrorCopied

fs.symlinkSync

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

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

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

参数:

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

错误码:

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

示例:

  1. let srcFile = pathDir + "/test.txt";
  2. let dstFile = pathDir + "/test";
  3. fs.symlinkSync(srcFile, dstFile);
Copy to clipboardErrorCopied

fs.listFile

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

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

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

参数:

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

options参数说明:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import fs, { Filter } from '@ohos.file.fs';
  3. class ListFileOption {
  4. public recursion: boolean = false;
  5. public listNum: number = 0;
  6. public filter: Filter = {};
  7. }
  8. let option = new ListFileOption();
  9. option.filter.suffix = [".png", ".jpg", ".jpeg"];
  10. option.filter.displayName = ["*abc", "efg*"];
  11. option.filter.fileSizeOver = 1024;
  12. option.filter.lastModifiedAfter = new Date().getTime();
  13. fs.listFile(pathDir, option).then((filenames: Array<string>) => {
  14. console.info("listFile succeed");
  15. for (let i = 0; i < filenames.length; i++) {
  16. console.info("fileName: %s", filenames[i]);
  17. }
  18. }).catch((err: BusinessError) => {
  19. console.error("list file failed with error message: " + err.message + ", error code: " + err.code);
  20. });
复制到剪贴板错误复制

fs.listFile

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

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

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

参数:

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

options参数说明:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import fs, { Filter } from '@ohos.file.fs';
  3. class ListFileOption {
  4. public recursion: boolean = false;
  5. public listNum: number = 0;
  6. public filter: Filter = {};
  7. }
  8. let option = new ListFileOption();
  9. option.filter.suffix = [".png", ".jpg", ".jpeg"];
  10. option.filter.displayName = ["*abc", "efg*"];
  11. option.filter.fileSizeOver = 1024;
  12. option.filter.lastModifiedAfter = new Date().getTime();
  13. fs.listFile(pathDir, option, (err: BusinessError, filenames: Array<string>) => {
  14. if (err) {
  15. console.error("list file failed with error message: " + err.message + ", error code: " + err.code);
  16. } else {
  17. console.info("listFile succeed");
  18. for (let i = 0; i < filenames.length; i++) {
  19. console.info("filename: %s", filenames[i]);
  20. }
  21. }
  22. });
复制到剪贴板错误复制

fs.listFileSync

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

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

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

参数:

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

options参数说明:

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

返回值:

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

错误码:

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

示例:

  1. import fs, { Filter } from '@ohos.file.fs';
  2. class ListFileOption {
  3. public recursion: boolean = false;
  4. public listNum: number = 0;
  5. public filter: Filter = {};
  6. }
  7. let option = new ListFileOption();
  8. option.filter.suffix = [".png", ".jpg", ".jpeg"];
  9. option.filter.displayName = ["*abc", "efg*"];
  10. option.filter.fileSizeOver = 1024;
  11. option.filter.lastModifiedAfter = new Date().getTime();
  12. let filenames = fs.listFileSync(pathDir, option);
  13. console.info("listFile succeed");
  14. for (let i = 0; i < filenames.length; i++) {
  15. console.info("filename: %s", filenames[i]);
  16. }
Copy to clipboardErrorCopied

fs.moveDir10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. // move directory from srcPath to destPath
  3. let srcPath = pathDir + "/srcDir/";
  4. let destPath = pathDir + "/destDir/";
  5. fs.moveDir(srcPath, destPath, 1).then(() => {
  6. console.info("move directory succeed");
  7. }).catch((err: BusinessError<Array<ConflictFiles>) => {
  8. if (err.code == 13900015) {
  9. for (let i = 0; i < err.data.length; i++) {
  10. console.error("copy directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
  11. }
  12. } else(err) {
  13. console.error("copy directory failed with error message: " + err.message + ", error code: " + err.code);
  14. }
  15. });
Copy to clipboardErrorCopied

fs.moveDir10+

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

移动源文件夹至目标路径下,支持设置移动模式。使用callback异步回调。

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import fs, { ConflictFiles } from '@ohos.file.fs';
  3. // move directory from srcPath to destPath
  4. let srcPath = pathDir + "/srcDir/";
  5. let destPath = pathDir + "/destDir/";
  6. fs.moveDir(srcPath, destPath, 1, (err: BusinessError<Array<ConflictFiles>>) => {
  7. if (err && err.code == 13900015) {
  8. for (let i = 0; i < err.data.length; i++) {
  9. console.error("move directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
  10. }
  11. } else if (err) {
  12. console.error("move directory failed with error message: " + err.message + ", error code: " + err.code);
  13. } else {
  14. console.info("move directory succeed");
  15. }
  16. });
复制到剪贴板错误复制

fs.moveDir10+

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

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

移动模式为文件夹级别抛异常,当目标文件夹下存在与源文件夹名冲突的文件夹,则抛出异常。

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

参数:

参数名类型必填说明
src字符串源文件夹的应用沙箱路径。
dest字符串目标文件夹的应用沙箱路径。
回调AsyncCallback<void, Array<ConflictFiles>>异步移动文件夹之后的回调。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import fs, { ConflictFiles } from '@ohos.file.fs';
  3. // move directory from srcPath to destPath
  4. let srcPath = pathDir + "/srcDir/";
  5. let destPath = pathDir + "/destDir/";
  6. fs.moveDir(srcPath, destPath, (err: BusinessError<Array<ConflictFiles>>) => {
  7. if (err && err.code == 13900015) {
  8. for (let i = 0; i < err.data.length; i++) {
  9. console.error("move directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
  10. }
  11. } else if (err) {
  12. console.error("move directory failed with error message: " + err.message + ", error code: " + err.code);
  13. } else {
  14. console.info("move directory succeed");
  15. }
  16. });
复制到剪贴板错误复制

fs.moveDirSync10+

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import fs, { ConflictFiles } from '@ohos.file.fs';
  3. // move directory from srcPath to destPath
  4. let srcPath = pathDir + "/srcDir/";
  5. let destPath = pathDir + "/destDir/";
  6. try {
  7. fs.moveDirSync(srcPath, destPath, 1);
  8. console.info("move directory succeed");
  9. } catch (error) {
  10. let err: BusinessError<Array<ConflictFiles>> = error as BusinessError<Array<ConflictFiles>>;
  11. if (err.code == 13900015) {
  12. for (let i = 0; i < err.data.length; i++) {
  13. console.error("move directory failed with conflicting files: " + err.data[i].srcFile + " " + err.data[i].destFile);
  14. }
  15. } else {
  16. console.error("move directory failed with error message: " + err.message + ", error code: " + err.code);
  17. }
  18. }
Copy to clipboardErrorCopied

fs.moveFile

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcPath = pathDir + "/source.txt";
  3. let destPath = pathDir + "/dest.txt";
  4. fs.moveFile(srcPath, destPath, 0).then(() => {
  5. console.info("move file succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("move file failed with error message: " + err.message + ", error code: " + err.code);
  8. });
Copy to clipboardErrorCopied

fs.moveFile

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

移动文件,支持设置移动模式。使用callback异步回调。

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

参数:

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

错误码:

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

示例:

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

fs.moveFile

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

移动文件,当移动位置存在同名文件时,将强制移动覆盖。使用callback异步回调。

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

参数:

参数名类型必填说明
srcstring源文件的应用沙箱路径。
deststring目的文件的应用沙箱路径。
callbackAsyncCallback<void>异步移动文件之后的回调。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let srcPath = pathDir + "/source.txt";
  3. let destPath = pathDir + "/dest.txt";
  4. fs.moveFile(srcPath, destPath, (err: BusinessError) => {
  5. if (err) {
  6. console.error("move file failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("move file succeed");
  9. }
  10. });
Copy to clipboardErrorCopied

fs.moveFileSync

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

以同步方式移动文件。

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

参数:

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

错误码:

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

示例:

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

fs.mkdtemp

mkdtemp(prefix: string): Promise<string>

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

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

参数:

参数名类型必填说明
prefixstring指定目录路径,命名时需要以"XXXXXX"作为结尾。路径末尾的"XXXXXX"字符串将被替换为随机字符,以创建唯一的目录名。

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. fs.mkdtemp(pathDir + "/XXXXXX").then((dir: string) => {
  3. console.info("mkdtemp succeed:" + dir);
  4. }).catch((err: BusinessError) => {
  5. console.error("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
  6. });
复制到剪贴板错误复制

fs.mkdtemp

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

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

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

参数:

参数名类型必填说明
prefix字符串指定目录路径,命名时需要以"XXXXXX"作为结尾。路径末尾的"XXXXXX"字符串将被替换为随机字符,以创建唯一的目录名。
回调AsyncCallback<string>异步创建临时目录之后的回调。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. fs.mkdtemp(pathDir + "/XXXXXX", (err: BusinessError, res: string) => {
  3. if (err) {
  4. console.error("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
  5. } else {
  6. console.info("mkdtemp succeed");
  7. }
  8. });
复制到剪贴板错误复制

fs.mkdtempSync

mkdtempSync(prefix: string): string

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

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

参数:

参数名类型必填说明
prefix字符串指定目录路径,命名时需要以"XXXXXX"作为结尾。路径末尾的"XXXXXX"字符串将被替换为随机字符,以创建唯一的目录名。

返回值:

类型说明
字符串产生的唯一目录路径。

错误码:

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

示例:

let res = fs.mkdtempSync(pathDir + "/XXXXXX");复制到剪贴板错误复制

fs.createRandomAccessFile10+

createRandomAccessFile(file: string | File, mode?: number): Promise<RandomAccessFile>

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

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

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  4. fs.createRandomAccessFile(file).then((randomAccessFile: fs.RandomAccessFile) => {
  5. console.info("randomAccessFile fd: " + randomAccessFile.fd);
  6. randomAccessFile.close();
  7. }).catch((err: BusinessError) => {
  8. console.error("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
  9. }).finally(() => {
  10. fs.closeSync(file);
  11. });
Copy to clipboardErrorCopied

fs.createRandomAccessFile10+

createRandomAccessFile(file: string | File, mode: number, callback: AsyncCallback<RandomAccessFile>): void

基于文件路径或文件对象,支持设置创建模式,创建RandomAccessFile文件对象。使用callback异步回调。

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  4. fs.createRandomAccessFile(file, fs.OpenMode.READ_WRITE, (err: BusinessError, randomAccessFile: fs.RandomAccessFile) => {
  5. if (err) {
  6. console.error("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("randomAccessFile fd: " + randomAccessFile.fd);
  9. randomAccessFile.close();
  10. }
  11. fs.closeSync(file);
  12. });
Copy to clipboardErrorCopied

fs.createRandomAccessFile10+

createRandomAccessFile(file: string | File, callback: AsyncCallback<RandomAccessFile>): void

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

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

参数:

参数名类型必填说明
filestring | File文件的应用沙箱路径或已打开的File对象
callbackAsyncCallback<RandomAccessFile>异步创建RandomAccessFile对象之后的回调。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  4. fs.createRandomAccessFile(file, (err: BusinessError, randomAccessFile: fs.RandomAccessFile) => {
  5. if (err) {
  6. console.error("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("randomAccessFile fd: " + randomAccessFile.fd);
  9. randomAccessFile.close();
  10. }
  11. fs.closeSync(file);
  12. });
复制到剪贴板错误复制

fs.createRandomAccessFileSync10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  3. let randomAccessFile = fs.createRandomAccessFileSync(file);
  4. randomAccessFile.close();
复制到剪贴板错误复制

fs.createStream

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

基于文件路径创建文件流,使用Promise异步返回。

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.createStream(filePath, "r+").then((stream: fs.Stream) => {
  4. console.info("createStream succeed");
  5. }).catch((err: BusinessError) => {
  6. console.error("createStream failed with error message: " + err.message + ", error code: " + err.code);
  7. }).finally(() => {
  8. stream.closeSync();
  9. });
Copy to clipboardErrorCopied

fs.createStream

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. fs.createStream(filePath, "r+", (err: BusinessError, stream: fs.Stream) => {
  4. if (err) {
  5. console.error("createStream failed with error message: " + err.message + ", error code: " + err.code);
  6. } else {
  7. console.info("createStream succeed");
  8. }
  9. stream.closeSync();
  10. });
Copy to clipboardErrorCopied

fs.createStreamSync

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

以同步方法基于文件路径创建文件流。

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let stream = fs.createStreamSync(filePath, "r+");
  3. console.info("createStream succeed");
  4. stream.closeSync();
Copy to clipboardErrorCopied

fs.fdopenStream

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath);
  4. fs.fdopenStream(file.fd, "r+").then((stream: fs.Stream) => {
  5. console.info("openStream succeed");
  6. fs.closeSync(file);
  7. }).catch((err: BusinessError) => {
  8. console.error("openStream failed with error message: " + err.message + ", error code: " + err.code);
  9. }).finally(() => {
  10. stream.closeSync();
  11. });
Copy to clipboardErrorCopied

fs.fdopenStream

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  4. fs.fdopenStream(file.fd, "r+", (err: BusinessError, stream: fs.Stream) => {
  5. if (err) {
  6. console.error("fdopen stream failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("fdopen stream succeed");
  9. fs.closeSync(file);
  10. }
  11. stream.closeSync();
  12. });
Copy to clipboardErrorCopied

fs.fdopenStreamSync

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY | fs.OpenMode.CREATE);
  3. let stream = fs.fdopenStreamSync(file.fd, "r+");
  4. fs.closeSync(file);
  5. stream.closeSync();
Copy to clipboardErrorCopied

fs.createWatcher10+

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

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

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

参数:

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

返回值:

类型说明
Watcher返回Watcher对象。

错误码:

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

示例:

  1. import fs, { WatchEvent } from '@ohos.file.fs';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  4. let watcher = fs.createWatcher(filePath, 0x2 | 0x10, (watchEvent: WatchEvent) => {
  5. if (watchEvent.event == 0x2) {
  6. console.info(watchEvent.fileName + 'was modified');
  7. } else if (watchEvent.event == 0x10) {
  8. console.info(watchEvent.fileName + 'was closed');
  9. }
  10. });
  11. watcher.start();
  12. fs.writeSync(file.fd, 'test');
  13. fs.closeSync(file);
  14. watcher.stop();
Copy to clipboardErrorCopied

WatchEventListener10+

(event: WatchEvent): void

事件监听类。

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

参数:

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

WatchEvent10+

事件类

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

属性

名称类型可读可写说明
fileNamestring发生监听事件的文件名。
eventnumber监听变动的事件集,多个事件通过或(|)的方式进行集合。
- 0x1: IN_ACCESS, 文件被访问。
- 0x2: IN_MODIFY,文件内容被修改。
- 0x4: IN_ATTRIB,文件元数据被修改。
- 0x8: IN_CLOSE_WRITE,文件在打开时进行了写操作,然后被关闭。
- 0x10: IN_CLOSE_NOWRITE,文件或目录在打开时未进行写操作,然后被关闭。
- 0x20: IN_OPEN,文件或目录被打开。
- 0x40: IN_MOVED_FROM,监听目录中文件被移动走。
- 0x80: IN_MOVED_TO,监听目录中文件被移动过来。
- 0x100: IN_CREATE,监听目录中文件或子目录被创建。
- 0x200: IN_DELETE,监听目录中文件或子目录被删除。
- 0x400: IN_DELETE_SELF,监听的目录被删除,删除后监听停止。
- 0x800: IN_MOVE_SELF,监听的文化或目录被移动,移动后监听继续。
- 0xfff: IN_ALL_EVENTS,监听以上所有事件。
cookienumber绑定相关事件的cookie。当前仅支持事件IN_MOVED_FROM与IN_MOVED_TO,同一个文件的移动事件IN_MOVED_FROM和IN_MOVED_TO具有相同的cookie值。

Stat

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

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

属性

名称类型可读可写说明
inobigint标识该文件。通常同设备上的不同文件的INO不同。
modenumber表示文件权限,各特征位的含义如下:
说明: 以下值为八进制,取得的返回值为十进制,请换算后查看。
- 0o400:用户读,对于普通文件,所有者可读取文件;对于目录,所有者可读取目录项。
- 0o200:用户写,对于普通文件,所有者可写入文件;对于目录,所有者可创建/删除目录项。
- 0o100:用户执行,对于普通文件,所有者可执行文件;对于目录,所有者可在目录中搜索给定路径名。
- 0o040:用户组读,对于普通文件,所有用户组可读取文件;对于目录,所有用户组可读取目录项。
- 0o020:用户组写,对于普通文件,所有用户组可写入文件;对于目录,所有用户组可创建/删除目录项。
- 0o010:用户组执行,对于普通文件,所有用户组可执行文件;对于目录,所有用户组是否可在目录中搜索给定路径名。
- 0o004:其他读,对于普通文件,其余用户可读取文件;对于目录,其他用户组可读取目录项。
- 0o002:其他写,对于普通文件,其余用户可写入文件;对于目录,其他用户组可创建/删除目录项。
- 0o001:其他执行,对于普通文件,其余用户可执行文件;对于目录,其他用户组可在目录中搜索给定路径名。
uidnumber文件所有者的ID。
gidnumber文件所有组的ID。
sizenumber文件的大小,以字节为单位。仅对普通文件有效。
atimenumber上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。
mtimenumber上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。
ctimenumber最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。

isBlockDevice

isBlockDevice(): boolean

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

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

返回值:

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

错误码:

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

示例:

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

isCharacterDevice

isCharacterDevice(): boolean

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

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

返回值:

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

错误码:

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

示例:

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

isDirectory

isDirectory(): boolean

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

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

返回值:

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

错误码:

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

示例:

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

isFIFO

isFIFO(): boolean

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

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

返回值:

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

错误码:

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

示例:

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

isFile

isFile(): boolean

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

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

返回值:

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

错误码:

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

示例:

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

isSocket

isSocket(): boolean

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

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let isSocket = fs.statSync(filePath).isSocket();
复制到剪贴板错误复制

isSymbolicLink(): boolean

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

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test";
  2. let isSymbolicLink = fs.statSync(filePath).isSymbolicLink();
复制到剪贴板错误复制

Stream

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

close

close(): Promise<void>

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

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

返回值:

类型说明
承诺<无效>Promise对象。无返回值。

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let stream = fs.createStreamSync(filePath, "r+");
  4. stream.close().then(() => {
  5. console.info("close fileStream succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("close fileStream failed with error message: " + err.message + ", error code: " + err.code);
  8. });
复制到剪贴板错误复制

close

close(callback: AsyncCallback<void>): void

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let stream = fs.createStreamSync(filePath, "r+");
  4. stream.close((err: BusinessError) => {
  5. if (err) {
  6. console.error("close stream failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("close stream succeed");
  9. }
  10. });
Copy to clipboardErrorCopied

closeSync

closeSync(): void

同步关闭文件流。

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

错误码:

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

示例:

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

flush

flush(): Promise<void>

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

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let stream = fs.createStreamSync(filePath, "r+");
  4. stream.flush().then(() => {
  5. console.info("flush succeed");
  6. stream.close();
  7. }).catch((err: BusinessError) => {
  8. console.error("flush failed with error message: " + err.message + ", error code: " + err.code);
  9. });
Copy to clipboardErrorCopied

flush

flush(callback: AsyncCallback<void>): void

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let stream = fs.createStreamSync(filePath, "r+");
  4. stream.flush((err: BusinessError) => {
  5. if (err) {
  6. console.error("flush stream failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.info("flush succeed");
  9. }
  10. stream.close();
  11. });
Copy to clipboardErrorCopied

flushSync

flushSync(): void

同步刷新文件流。

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let stream = fs.createStreamSync(filePath, "r+");
  3. stream.flushSync();
  4. stream.close();
Copy to clipboardErrorCopied

write

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let stream = fs.createStreamSync(filePath, "r+");
  4. class Option {
  5. offset: number = 0;
  6. length: number = 0;
  7. encoding: string = 'utf-8';
  8. }
  9. let option = new Option();
  10. option.offset = 5;
  11. option.length = 5;
  12. stream.write("hello, world", option).then((number: number) => {
  13. console.info("write succeed and size is:" + number);
  14. stream.close();
  15. }).catch((err: BusinessError) => {
  16. console.error("write failed with error message: " + err.message + ", error code: " + err.code);
  17. });
Copy to clipboardErrorCopied

write

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let stream = fs.createStreamSync(filePath, "r+");
  4. class Option {
  5. offset: number = 0;
  6. length: number = 0;
  7. encoding: string = 'utf-8';
  8. }
  9. let option = new Option();
  10. option.offset = 5;
  11. option.length = 5;
  12. stream.write("hello, world", option, (err: BusinessError, bytesWritten: number) => {
  13. if (err) {
  14. console.error("write stream failed with error message: " + err.message + ", error code: " + err.code);
  15. } else {
  16. if (bytesWritten) {
  17. console.info("write succeed and size is:" + bytesWritten);
  18. stream.close();
  19. }
  20. }
  21. });
Copy to clipboardErrorCopied

writeSync

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let stream = fs.createStreamSync(filePath, "r+");
  3. class Option {
  4. offset: number = 0;
  5. length: number = 0;
  6. encoding: string = 'utf-8';
  7. }
  8. let option = new Option();
  9. option.offset = 5;
  10. option.length = 5;
  11. let num = stream.writeSync("hello, world", option);
  12. stream.close();
Copy to clipboardErrorCopied

read

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import buffer from '@ohos.buffer';
  3. let filePath = pathDir + "/test.txt";
  4. let stream = fs.createStreamSync(filePath, "r+");
  5. let arrayBuffer = new ArrayBuffer(4096);
  6. class Option {
  7. offset: number = 0;
  8. length: number = 0;
  9. }
  10. let option = new Option();
  11. option.offset = 5;
  12. option.length = 5;
  13. stream.read(arrayBuffer, option).then((readLen: number) => {
  14. console.info("read data succeed");
  15. let buf = buffer.from(arrayBuffer, 0, readLen);
  16. console.log(`The content of file: ${buf.toString()}`);
  17. stream.close();
  18. }).catch((err: BusinessError) => {
  19. console.error("read data failed with error message: " + err.message + ", error code: " + err.code);
  20. });
Copy to clipboardErrorCopied

read

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. import buffer from '@ohos.buffer';
  3. let filePath = pathDir + "/test.txt";
  4. let stream = fs.createStreamSync(filePath, "r+");
  5. let arrayBuffer = new ArrayBuffer(4096);
  6. class Option {
  7. offset: number = 0;
  8. length: number = 0;
  9. }
  10. let option = new Option();
  11. option.offset = 5;
  12. option.length = 5;
  13. stream.read(arrayBuffer, option, (err: BusinessError, readLen: number) => {
  14. if (err) {
  15. console.error("read stream failed with error message: " + err.message + ", error code: " + err.code);
  16. } else {
  17. console.info("read data succeed");
  18. let buf = buffer.from(arrayBuffer, 0, readLen);
  19. console.log(`The content of file: ${buf.toString()}`);
  20. }
  21. stream.close();
  22. });
Copy to clipboardErrorCopied

readSync

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let stream = fs.createStreamSync(filePath, "r+");
  3. class Option {
  4. offset: number = 0;
  5. length: number = 0;
  6. }
  7. let option = new Option();
  8. option.offset = 5;
  9. option.length = 5;
  10. let buf = new ArrayBuffer(4096);
  11. let num = stream.readSync(buf, option);
  12. stream.close();
Copy to clipboardErrorCopied

File

由open接口打开的File对象。

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

属性

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

lock

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  4. file.lock(true).then(() => {
  5. console.log("lock file succeed");
  6. }).catch((err: BusinessError) => {
  7. console.error("lock file failed with error message: " + err.message + ", error code: " + err.code);
  8. }).finally(() => {
  9. fs.closeSync(file);
  10. });
Copy to clipboardErrorCopied

lock

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  4. file.lock(true, (err: BusinessError) => {
  5. if (err) {
  6. console.error("lock file failed with error message: " + err.message + ", error code: " + err.code);
  7. } else {
  8. console.log("lock file succeed");
  9. }
  10. fs.closeSync(file);
  11. });
Copy to clipboardErrorCopied

tryLock

tryLock(exclusive?: boolean): void

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

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

参数:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  3. file.tryLock(true);
  4. console.log("lock file succeed");
  5. fs.closeSync(file);
Copy to clipboardErrorCopied

unlock

unlock(): void

以同步方式给文件解锁。

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  3. file.tryLock(true);
  4. file.unlock();
  5. console.log("unlock file succeed");
  6. fs.closeSync(file);
Copy to clipboardErrorCopied

RandomAccessFile

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

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

属性

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

setFilePointer10+

setFilePointer(): void

设置文件偏置指针

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

错误码:

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

示例:

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

close10+

close(): void

同步关闭RandomAccessFile对象。

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let randomAccessFile = fs.createRandomAccessFileSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  3. randomAccessFile.close();
Copy to clipboardErrorCopied

write10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  4. let randomAccessFile = fs.createRandomAccessFileSync(file);
  5. let bufferLength: number = 4096;
  6. class Option {
  7. offset: number = 0;
  8. length: number = 0;
  9. encoding: string = 'utf-8';
  10. }
  11. let option = new Option();
  12. option.offset = 1;
  13. option.length = 5;
  14. let arrayBuffer = new ArrayBuffer(bufferLength);
  15. randomAccessFile.write(arrayBuffer, option).then((bytesWritten: number) => {
  16. console.info("randomAccessFile bytesWritten: " + bytesWritten);
  17. }).catch((err: BusinessError) => {
  18. console.error("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
  19. }).finally(() => {
  20. randomAccessFile.close();
  21. fs.closeSync(file);
  22. });
Copy to clipboardErrorCopied

write10+

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  4. let randomAccessFile = fs.createRandomAccessFileSync(file);
  5. let bufferLength: number = 4096;
  6. class Option {
  7. offset: number = 0;
  8. length: number = bufferLength;
  9. encoding: string = 'utf-8';
  10. }
  11. let option = new Option();
  12. option.offset = 1;
  13. let arrayBuffer = new ArrayBuffer(bufferLength);
  14. randomAccessFile.write(arrayBuffer, option, (err: BusinessError, bytesWritten: number) => {
  15. if (err) {
  16. console.error("write failed with error message: " + err.message + ", error code: " + err.code);
  17. } else {
  18. if (bytesWritten) {
  19. console.info("write succeed and size is:" + bytesWritten);
  20. }
  21. }
  22. randomAccessFile.close();
  23. fs.closeSync(file);
  24. });
Copy to clipboardErrorCopied

writeSync10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let randomAccessFile = fs.createRandomAccessFileSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  3. class Option {
  4. offset: number = 0;
  5. length: number = 0;
  6. encoding: string = 'utf-8';
  7. }
  8. let option = new Option();
  9. option.offset = 5;
  10. option.length = 5;
  11. let bytesWritten = randomAccessFile.writeSync("hello, world", option);
  12. randomAccessFile.close();
Copy to clipboardErrorCopied

read10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  4. let randomAccessFile = fs.createRandomAccessFileSync(file);
  5. let bufferLength: number = 4096;
  6. class Option {
  7. offset: number = 0;
  8. length: number = bufferLength;
  9. }
  10. let option = new Option();
  11. option.offset = 1;
  12. option.length = 5;
  13. let arrayBuffer = new ArrayBuffer(bufferLength);
  14. randomAccessFile.read(arrayBuffer, option).then((readLength: number) => {
  15. console.info("randomAccessFile readLength: " + readLength);
  16. }).catch((err: BusinessError) => {
  17. console.error("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
  18. }).finally(() => {
  19. randomAccessFile.close();
  20. fs.closeSync(file);
  21. });
Copy to clipboardErrorCopied

read10+

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

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

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

参数:

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

错误码:

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

示例:

  1. import { BusinessError } from '@ohos.base';
  2. let filePath = pathDir + "/test.txt";
  3. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  4. let randomAccessFile = fs.createRandomAccessFileSync(file);
  5. let length: number = 20;
  6. class Option {
  7. offset: number = 0;
  8. length: number = length;
  9. }
  10. let option = new Option();
  11. option.offset = 1;
  12. option.length = 5;
  13. let arrayBuffer = new ArrayBuffer(length);
  14. randomAccessFile.read(arrayBuffer, option, (err: BusinessError, readLength: number) => {
  15. if (err) {
  16. console.error("read failed with error message: " + err.message + ", error code: " + err.code);
  17. } else {
  18. if (readLength) {
  19. console.info("read succeed and size is:" + readLength);
  20. }
  21. }
  22. randomAccessFile.close();
  23. fs.closeSync(file);
  24. });
Copy to clipboardErrorCopied

readSync10+

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

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

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

参数:

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

返回值:

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  3. let randomAccessFile = fs.createRandomAccessFileSync(file);
  4. let length: number = 4096;
  5. let arrayBuffer = new ArrayBuffer(length);
  6. let readLength = randomAccessFile.readSync(arrayBuffer);
  7. randomAccessFile.close();
  8. fs.closeSync(file);
Copy to clipboardErrorCopied

Watcher10+

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

start10+

start(): void

开启监听。

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let watcher = fs.createWatcher(filePath, 0xfff, () => {});
  3. watcher.start();
  4. watcher.stop();
Copy to clipboardErrorCopied

stop10+

stop(): void

停止监听。

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

错误码:

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

示例:

  1. let filePath = pathDir + "/test.txt";
  2. let watcher = fs.createWatcher(filePath, 0xfff, () => {});
  3. watcher.start();
  4. watcher.stop();
Copy to clipboardErrorCopied

OpenMode

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

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

名称类型说明
READ_ONLYnumber0o0只读打开。
WRITE_ONLYnumber0o1只写打开。
READ_WRITEnumber0o2读写打开。
CREATEnumber0o100若文件不存在,则创建文件。
TRUNCnumber0o1000如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。
APPENDnumber0o2000以追加方式打开,后续写将追加到文件末尾。
NONBLOCKnumber0o4000如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。
DIRnumber0o200000如果path不指向目录,则出错。
NOFOLLOWnumber0o400000如果path指向符号链接,则出错。
SYNCnumber0o4010000以同步IO的方式打开文件。

Filter10+

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

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

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

ConflictFiles10+

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

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

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

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(HarmonyOS NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/999303
推荐阅读
相关标签
  

闽ICP备14008679号