harmony 鸿蒙@ohos.file.fs (文件管理)
@ohos.file.fs (文件管理)
该模块为基础文件操作API,提供基础文件操作能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。
说明:
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import fs from '@ohos.file.fs';
使用说明
使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:
Stage模型
import UIAbility from '@ohos.app.ability.UIAbility';
import window from '@ohos.window';
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.WindowStage) {
let context = this.context;
let pathDir = context.filesDir;
}
}
FA模型
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
context.getFilesDir().then((data) => {
let pathDir = data;
})
FA模型context的具体获取方法参见FA模型。
fs.stat
stat(file: string|number): Promise<Stat>
获取文件详细属性信息,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
---|---|
Promise<Stat> | Promise对象。返回文件的具体信息。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.stat(filePath).then((stat: fs.Stat) => {
console.info("get file info succeed, the size of file is " + stat.size);
}).catch((err: BusinessError) => {
console.info("get file info failed with error message: " + err.message + ", error code: " + err.code);
});
fs.stat
stat(file: string|number, callback: AsyncCallback<Stat>): void
获取文件详细属性信息,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
callback | AsyncCallback<Stat> | 是 | 异步获取文件的信息之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
fs.stat(pathDir, (err: BusinessError, stat: fs.Stat) => {
if (err) {
console.info("get file info failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("get file info succeed, the size of file is " + stat.size);
}
});
fs.statSync
statSync(file: string|number): Stat
以同步方法获取文件详细属性信息。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
---|---|
Stat | 表示文件的具体信息。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let stat = fs.statSync(pathDir);
console.info("get file info succeed, the size of file is " + stat.size);
fs.access
access(path: string): Promise<boolean>
检查文件是否存在,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件应用沙箱路径。 |
返回值:
类型 | 说明 |
---|---|
Promise<boolean> | Promise对象。返回boolean,表示文件是否存在。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.access(filePath).then((res: boolean) => {
if (res) {
console.info("file exists");
}
}).catch((err: BusinessError) => {
console.info("access failed with error message: " + err.message + ", error code: " + err.code);
});
fs.access
access(path: string, callback: AsyncCallback<boolean>): void
检查文件是否存在,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件应用沙箱路径。 |
callback | AsyncCallback<boolean> | 是 | 异步检查文件是否存在的回调,如果存在,回调返回true,否则返回false。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.access(filePath, (err: BusinessError, res: boolean) => {
if (err) {
console.info("access failed with error message: " + err.message + ", error code: " + err.code);
} else {
if (res) {
console.info("file exists");
}
}
});
fs.accessSync
accessSync(path: string): boolean
以同步方法检查文件是否存在。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件应用沙箱路径。 |
返回值:
类型 | 说明 |
---|---|
boolean | 返回true,表示文件存在;返回false,表示文件不存在。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
try {
let res = fs.accessSync(filePath);
if (res) {
console.info("file exists");
}
} catch(error) {
let err: BusinessError = error as BusinessError;
console.info("accessSync failed with error message: " + err.message + ", error code: " + err.code);
}
fs.close
close(file: number|File): Promise<void>
关闭文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | number|File | 是 | 已打开的File对象或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.close(file).then(() => {
console.info("close file succeed");
}).catch((err: BusinessError) => {
console.info("close file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.close
close(file: number|File, callback: AsyncCallback<void>): void
关闭文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | number|File | 是 | 已打开的File对象或已打开的文件描述符fd。 |
callback | AsyncCallback<void> | 是 | 异步关闭文件之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.close(file, (err: BusinessError) => {
if (err) {
console.info("close file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("close file success");
}
});
fs.closeSync
closeSync(file: number|File): void
以同步方法关闭文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | number|File | 是 | 已打开的File对象或已打开的文件描述符fd。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.closeSync(file);
fs.copyFile
copyFile(src: string|number, dest: string|number, mode?: number): Promise<void>
复制文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string|number | 是 | 待复制文件的路径或待复制文件的文件描述符。 |
dest | string|number | 是 | 目标文件路径或目标文件的文件描述符。 |
mode | number | 否 | mode提供覆盖文件的选项,当前仅支持0,且默认为0。 0:完全覆盖目标文件。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let srcPath = pathDir + "/srcDir/test.txt";
let dstPath = pathDir + "/dstDir/test.txt";
fs.copyFile(srcPath, dstPath).then(() => {
console.info("copy file succeed");
}).catch((err: BusinessError) => {
console.info("copy file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.copyFile
copyFile(src: string|number, dest: string|number, mode?: number, callback: AsyncCallback<void>): void
复制文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string|number | 是 | 待复制文件的路径或待复制文件的文件描述符。 |
dest | string|number | 是 | 目标文件路径或目标文件的文件描述符。 |
mode | number | 否 | mode提供覆盖文件的选项,当前仅支持0,且默认为0。 0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
callback | AsyncCallback<void> | 是 | 异步复制文件之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let srcPath = pathDir + "/srcDir/test.txt";
let dstPath = pathDir + "/dstDir/test.txt";
fs.copyFile(srcPath, dstPath, (err: BusinessError) => {
if (err) {
console.info("copy file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("copy file success");
}
});
fs.copyFileSync
copyFileSync(src: string|number, dest: string|number, mode?: number): void
以同步方法复制文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string|number | 是 | 待复制文件的路径或待复制文件的文件描述符。 |
dest | string|number | 是 | 目标文件路径或目标文件的文件描述符。 |
mode | number | 否 | mode提供覆盖文件的选项,当前仅支持0,且默认为0。 0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let srcPath = pathDir + "/srcDir/test.txt";
let dstPath = pathDir + "/dstDir/test.txt";
fs.copyFileSync(srcPath, dstPath);
fs.copyDir10+
copyDir(src: string, dest: string, mode?: number): Promise<void>
复制源文件夹至目标路径下,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 否 | 复制模式。默认mode为0。 - mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。 - mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
// copy directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
fs.copyDir(srcPath, destPath, 0).then(() => {
console.info("copy directory succeed");
}).catch((err: BusinessError) => {
console.info("copy directory failed with error message: " + err.message + ", error code: " + err.code);
});
fs.copyDir10+
copyDir(src: string, dest: string, mode?: number, callback: AsyncCallback<void, Array<ConflictFiles>>): void
复制源文件夹至目标路径下,使用Callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 否 | 复制模式。默认mode为0。 - mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。 - mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 |
callback | AsyncCallback<void, Array<ConflictFiles>> | 是 | 异步复制文件夹之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import fs, { ConflictFiles } from '@ohos.file.fs';
// copy directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
fs.copyDir(srcPath, destPath, 0, (err: BusinessError<Array<ConflictFiles>>) => {
if (err && err.code == 13900015) {
for (let i = 0; i < data.length; i++) {
console.info("copy directory failed with conflicting files: " + data[i].srcFile + " " + data[i].destFile);
}
} else if (err) {
console.info("copy directory failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("copy directory succeed");
}
});
fs.copyDirSync10+
copyDirSync(src: string, dest: string, mode?: number): void
以同步方法复制源文件夹至目标路径下。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 否 | 复制模式。默认mode为0。 - mode为0,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。 - mode为1,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
// copy directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
try {
fs.copyDirSync(srcPath, destPath, 0);
console.info("copy directory succeed");
} catch (error) {
let err: BusinessError = error as BusinessError;
console.info("copy directory failed with error message: " + err.message + ", error code: " + err.code);
}
fs.dup10+
dup(fd: number): File
将文件描述符转化为File。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 文件描述符。 |
返回值:
类型 | 说明 |
---|---|
File | 打开的File对象。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
// convert fd to file
let fd: number = 0; // fd comes from other modules
let file = fs.dup(fd);
console.info("The name of the file is " + file.name);
fs.closeSync(file);
fs.mkdir
mkdir(path: string): Promise<void>
创建目录,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let dirPath = pathDir + "/testDir";
fs.mkdir(dirPath).then(() => {
console.info("mkdir succeed");
}).catch((err: BusinessError) => {
console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
});
fs.mkdir11+
mkdir(path: string, recursion: boolean): Promise
创建目录,使用Promise异步回调。当recursion指定为true,可多层级创建目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
recursion | string | 是 | 是否多层级创建目录。recursion指定为true时,可多层级创建目录。recursion指定为false时,仅可创建单层目录。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let dirPath = pathDir + "/testDir1/testDir2/testDir3";
fs.mkdir(dirPath, true).then(() => {
console.info("mkdir succeed");
}).catch((err: BusinessError) => {
console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
});
fs.mkdir
mkdir(path: string, callback: AsyncCallback<void>): void
创建目录,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步创建目录操作完成之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let dirPath = pathDir + "/testDir";
fs.mkdir(dirPath, (err: BusinessError) => {
if (err) {
console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("mkdir success");
}
});
fs.mkdir11+
mkdir(path: string, recursion: boolean, callback: AsyncCallback<void>): void
创建目录,使用callback异步回调。当recursion指定为true,可多层级创建目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
recursion | string | 是 | 是否多层级创建目录。recursion指定为true时,可多层级创建目录。recursion指定为false时,仅可创建单层目录。 |
callback | AsyncCallback<void> | 是 | 异步创建目录操作完成之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let dirPath = pathDir + "/testDir1/testDir2/testDir3";
fs.mkdir(dirPath, true, (err: BusinessError) => {
if (err) {
console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("mkdir success");
}
});
fs.mkdirSync
mkdirSync(path: string): void
以同步方法创建目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let dirPath = pathDir + "/testDir";
fs.mkdirSync(dirPath);
fs.mkdirSync11+
mkdirSync(path: string): void
以同步方法创建目录。当recursion指定为true,可多层级创建目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
recursion | string | 是 | 是否多层级创建目录。recursion指定为true时,可多层级创建目录。recursion指定为false时,仅可创建单层目录。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let dirPath = pathDir + "/testDir1/testDir2/testDir3";
fs.mkdirSync(dirPath, true);
fs.open
open(path: string, mode?: number): Promise<File>
打开文件,使用Promise异步回调。支持使用URI打开文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径或文件URI。 |
mode | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开: - OpenMode.READ_ONLY(0o0):只读打开。 - OpenMode.WRITE_ONLY(0o1):只写打开。 - OpenMode.READ_WRITE(0o2):读写打开。 给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项: - OpenMode.CREATE(0o100):若文件不存在,则创建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。 - OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目录,则出错。不允许附加写权限。 - OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。 - OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。 |
返回值:
类型 | 说明 |
---|---|
Promise<File> | Promise对象。返回File对象。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.open(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE).then((file: fs.File) => {
console.info("file fd: " + file.fd);
fs.closeSync(file);
}).catch((err: BusinessError) => {
console.info("open file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.open
open(path: string, mode?: number, callback: AsyncCallback<File>): void
打开文件,使用callback异步回调。支持使用URI打开文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径或URI。 |
mode | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开: - OpenMode.READ_ONLY(0o0):只读打开。 - OpenMode.WRITE_ONLY(0o1):只写打开。 - OpenMode.READ_WRITE(0o2):读写打开。 给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项: - OpenMode.CREATE(0o100):若文件不存在,则创建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。 - OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目录,则出错。不允许附加写权限。 - OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。 - OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.open(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE, (err: BusinessError, file: fs.File) => {
if (err) {
console.info("open failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("file fd: " + file.fd);
}
fs.closeSync(file);
});
fs.openSync
openSync(path: string, mode?: number): File
以同步方法打开文件。支持使用URI打开文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 打开文件的应用沙箱路径或URI。 |
mode | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开: - OpenMode.READ_ONLY(0o0):只读打开。 - OpenMode.WRITE_ONLY(0o1):只写打开。 - OpenMode.READ_WRITE(0o2):读写打开。 给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项: - OpenMode.CREATE(0o100):若文件不存在,则创建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。 - OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目录,则出错。不允许附加写权限。 - OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。 - OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。 |
返回值:
类型 | 说明 |
---|---|
File | 打开的File对象。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
console.info("file fd: " + file.fd);
fs.closeSync(file);
fs.read
read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>
从文件读取数据,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存读取到的文件数据的缓冲区。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象。返回读取的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import buffer from '@ohos.buffer';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let arrayBuffer = new ArrayBuffer(4096);
fs.read(file.fd, arrayBuffer).then((readLen: number) => {
console.info("read file data succeed");
let buf = buffer.from(arrayBuffer, 0, readLen);
console.info(`The content of file: ${buf.toString()}`);
}).catch((err: BusinessError) => {
console.info("read file data failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
fs.closeSync(file);
});
fs.read
read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }, callback: AsyncCallback<number>): void
从文件读取数据,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存读取到的文件数据的缓冲区。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 |
callback | AsyncCallback<number> | 是 | 异步读取数据之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import buffer from '@ohos.buffer';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let arrayBuffer = new ArrayBuffer(4096);
fs.read(file.fd, arrayBuffer, (err: BusinessError, readLen: number) => {
if (err) {
console.info("read failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("read file data succeed");
let buf = buffer.from(arrayBuffer, 0, readLen);
console.info(`The content of file: ${buf.toString()}`);
}
fs.closeSync(file);
});
fs.readSync
readSync(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number
以同步方法从文件读取数据。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存读取到的文件数据的缓冲区。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 |
返回值:
类型 | 说明 |
---|---|
number | 实际读取的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let buf = new ArrayBuffer(4096);
fs.readSync(file.fd, buf);
fs.closeSync(file);
fs.rmdir
rmdir(path: string): Promise<void>
删除整个目录,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let dirPath = pathDir + "/testDir";
fs.rmdir(dirPath).then(() => {
console.info("rmdir succeed");
}).catch((err: BusinessError) => {
console.info("rmdir failed with error message: " + err.message + ", error code: " + err.code);
});
fs.rmdir
rmdir(path: string, callback: AsyncCallback<void>): void
删除整个目录,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步删除目录之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let dirPath = pathDir + "/testDir";
fs.rmdir(dirPath, (err: BusinessError) => {
if (err) {
console.info("rmdir failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("rmdir succeed");
}
});
fs.rmdirSync
rmdirSync(path: string): void
以同步方法删除目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 目录的应用沙箱路径。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let dirPath = pathDir + "/testDir";
fs.rmdirSync(dirPath);
fs.unlink
unlink(path: string): Promise<void>
删除单个文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.unlink(filePath).then(() => {
console.info("remove file succeed");
}).catch((err: BusinessError) => {
console.info("remove file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.unlink
unlink(path: string, callback: AsyncCallback<void>): void
删除文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步删除文件之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.unlink(filePath, (err: BusinessError) => {
if (err) {
console.info("remove file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("remove file succeed");
}
});
fs.unlinkSync
unlinkSync(path: string): void
以同步方法删除文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
fs.unlinkSync(filePath);
fs.write
write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>
将数据写入文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。当前仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象。返回实际写入的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
let str: string = "hello, world";
fs.write(file.fd, str).then((writeLen: number) => {
console.info("write data to file succeed and size is:" + writeLen);
}).catch((err: BusinessError) => {
console.info("write data to file failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
fs.closeSync(file);
});
fs.write
write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void
将数据写入文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。当前仅支持 ‘utf-8’。 |
callback | AsyncCallback<number> | 是 | 异步将数据写入完成后执行的回调函数。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
let str: string = "hello, world";
fs.write(file.fd, str, (err: BusinessError, writeLen: number) => {
if (err) {
console.info("write failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("write data to file succeed and size is:" + writeLen);
}
fs.closeSync(file);
});
fs.writeSync
writeSync(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number
以同步方法将数据写入文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。当前仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
number | 实际写入的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
let str: string = "hello, world";
let writeLen = fs.writeSync(file.fd, str);
console.info("write data to file succeed and size is:" + writeLen);
fs.closeSync(file);
fs.truncate
truncate(file: string|number, len?: number): Promise<void>
截断文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。默认为0。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let len: number = 5;
fs.truncate(filePath, len).then(() => {
console.info("truncate file succeed");
}).catch((err: BusinessError) => {
console.info("truncate file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.truncate
truncate(file: string|number, len?: number, callback: AsyncCallback<void>): void
截断文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。默认为0。 |
callback | AsyncCallback<void> | 是 | 回调函数,本调用无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let len: number = 5;
fs.truncate(filePath, len, (err: BusinessError) => {
if (err) {
console.info("truncate failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("truncate success");
}
});
fs.truncateSync
truncateSync(file: string|number, len?: number): void
以同步方法截断文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。默认为0。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let len: number = 5;
fs.truncateSync(filePath, len);
fs.readLines11+
readLines(filePath: string, options?: Options): Promise<ReaderIterator>
逐行读取文件文本内容,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Options | 否 | 可选项。支持以下选项: - encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 ‘utf-8’,仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
Promise<ReaderIterator> | Promise对象。返回文件读取迭代器。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import { Options } from '@ohos.file.fs';
let filePath = pathDir + "/test.txt";
let options: Options = {
encoding: 'utf-8'
};
fs.readLines(filePath, options).then((readerIterator: fs.ReaderIterator) => {
for (let it = readerIterator.next(); !it.done; it = readerIterator.next()) {
console.info("content: " + it.value);
}
}).catch((err: BusinessError) => {
console.info("readLines failed with error message: " + err.message + ", error code: " + err.code);
});
fs.readLines11+
readLines(filePath: string, options?: Options, callback: AsyncCallback<ReaderIterator>): void
逐行读取文件文本内容,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Options | 否 | 可选项。支持以下选项: - encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 ‘utf-8’,仅支持 ‘utf-8’。 |
callback | AsyncCallback<ReaderIterator> | 是 | 逐行读取文件文本内容回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import { Options } from '@ohos.file.fs';
let filePath = pathDir + "/test.txt";
let options: Options = {
encoding: 'utf-8'
};
fs.readLines(filePath, options, (err: BusinessError, readerIterator: fs.ReaderIterator) => {
if (err) {
console.info("readLines failed with error message: " + err.message + ", error code: " + err.code);
} else {
for (let it = readerIterator.next(); !it.done; it = readerIterator.next()) {
console.info("content: " + it.value);
}
}
})
fs.readLinesSync
readLinesSync(filePath: string, options?: Options): ReaderIterator
以同步方式逐行读取文件文本内容。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Options | 否 | 可选项。支持以下选项: - encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 ‘utf-8’,仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
ReaderIterator | 返回文件读取迭代器。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { Options } from '@ohos.file.fs';
let filePath = pathDir + "/test.txt";
let options: Options = {
encoding: 'utf-8'
};
let readerIterator = fs.readLines(filePath, options);
for (let it = readerIterator.next(); !it.done; it = readerIterator.next()) {
console.info("content: " + it.value);
}
ReaderIterator11+
文件读取迭代器。在调用ReaderIterator的方法前,需要先通过readLines方法(同步或异步)来构建一个ReaderIterator实例。
next
next(): ReaderIteratorResult
获取迭代器下一项内容。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
ReaderIteratorResult | 文件读取迭代器返回结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import { Options } from '@ohos.file.fs';
let filePath = pathDir + "/test.txt";
let options: Options = {
encoding: 'utf-8'
};
fs.readLines(filePath, options).then((readerIterator: fs.ReaderIterator) => {
for (let it = readerIterator.next(); !it.done; it = readerIterator.next()) {
console.info("content: " + it.value);
}
}).catch((err: BusinessError) => {
console.info("readLines failed with error message: " + err.message + ", error code: " + err.code);
});
ReaderIteratorResult
文件读取迭代器返回结果,支持ReaderIterator接口使用。
系统能力:SystemCapability.FileManagement.File.FileIO
名称 | 类型 | 说明 |
---|---|---|
done | boolean | 迭代器是否已完成迭代。 |
value | string | 逐行读取的文件文本内容。 |
fs.readText
readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<string>
基于文本方式读取文件(即直接读取文件的文本内容),使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。 - length,number类型,表示期望读取数据的长度。可选,默认文件长度。 - encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 ‘utf-8’,仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象。返回读取文件的内容。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.readText(filePath).then((str: string) => {
console.info("readText succeed:" + str);
}).catch((err: BusinessError) => {
console.info("readText failed with error message: " + err.message + ", error code: " + err.code);
});
fs.readText
readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<string>): void
基于文本方式读取文件(即直接读取文件的文本内容),使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。 - length,number类型,表示期望读取数据的长度。可选,默认文件长度。 - encoding,string类型,表示数据的编码方式,默认 ‘utf-8’,仅支持 ‘utf-8’。 |
callback | AsyncCallback<string> | 是 | 回调函数,返回读取文件的内容。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
class Option {
offset: number = 0;
length: number = 0;
encoding: string = 'utf-8';
}
let stat = fs.statSync(filePath);
let option = new Option();
option.offset = 1;
option.length = stat.size;
fs.readText(filePath, option, (err: BusinessError, str: string) => {
if (err) {
console.info("read text failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("readText succeed:" + str);
}
});
fs.readTextSync
readTextSync(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): string
以同步方法基于文本方式读取文件(即直接读取文件的文本内容)。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。 - length,number类型,表示期望读取数据的长度。可选,默认文件长度。 - encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 ‘utf-8’,仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
string | 返回读取文件的内容。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
class Option {
offset: number = 0;
length: number = 0;
encoding: string = 'utf-8';
}
let stat = fs.statSync(filePath);
let option = new Option();
option.offset = 1;
option.length = stat.size;
let str = fs.readTextSync(filePath, option);
console.info("readText succeed:" + str);
fs.lstat
lstat(path: string): Promise<Stat>
获取链接文件信息,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
---|---|
Promise<Stat> | promise对象,返回文件对象,表示文件的具体信息,详情见stat。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.lstat(filePath).then((stat: fs.Stat) => {
console.info("get link status succeed, the size of file is" + stat.size);
}).catch((err: BusinessError) => {
console.info("get link status failed with error message: " + err.message + ", error code: " + err.code);
});
fs.lstat
lstat(path: string, callback: AsyncCallback<Stat>): void
获取链接文件信息,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
callback | AsyncCallback<Stat> | 是 | 回调函数,返回文件的具体信息。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.lstat(filePath, (err: BusinessError, stat: fs.Stat) => {
if (err) {
console.info("lstat failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("get link status succeed, the size of file is" + stat.size);
}
});
fs.lstatSync
lstatSync(path: string): Stat
以同步方法获取链接文件信息。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
---|---|
Stat | 表示文件的具体信息。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
fs.lstatSync(filePath);
fs.rename
rename(oldPath: string, newPath: string): Promise<void>
重命名文件或文件夹,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
oldPath | string | 是 | 文件的应用沙箱原路径。 |
newPath | string | 是 | 文件的应用沙箱新路径。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/new.txt";
fs.rename(srcFile, dstFile).then(() => {
console.info("rename succeed");
}).catch((err: BusinessError) => {
console.info("rename failed with error message: " + err.message + ", error code: " + err.code);
});
fs.rename
rename(oldPath: string, newPath: string, callback: AsyncCallback<void>): void
重命名文件或文件夹,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
oldPath | string | 是 | 文件的应用沙箱原路径。 |
newPath | string | 是 | 文件的应用沙箱新路径。 |
callback | AsyncCallback<void> | 是 | 异步重命名文件之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/new.txt";
fs.rename(srcFile, dstFile, (err: BusinessError) => {
if (err) {
console.info("rename failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("rename success");
}
});
fs.renameSync
renameSync(oldPath: string, newPath: string): void
以同步方法重命名文件或文件夹。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
oldPath | string | 是 | 文件的应用沙箱原路径。 |
newPath | string | 是 | 文件的应用沙箱新路径。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/new.txt";
fs.renameSync(srcFile, dstFile);
fs.fsync
fsync(fd: number): Promise<void>
同步文件数据,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsync(file.fd).then(() => {
console.info("sync data succeed");
}).catch((err: BusinessError) => {
console.info("sync data failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
fs.closeSync(file);
});
fs.fsync
fsync(fd: number, callback: AsyncCallback<void>): void
同步文件数据,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
Callback | AsyncCallback<void> | 是 | 异步将文件数据同步之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsync(file.fd, (err: BusinessError) => {
if (err) {
console.info("fsync failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("fsync success");
}
fs.closeSync(file);
});
fs.fsyncSync
fsyncSync(fd: number): void
以同步方法同步文件数据。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsyncSync(file.fd);
fs.closeSync(file);
fs.fdatasync
fdatasync(fd: number): Promise<void>
实现文件内容数据同步,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdatasync(file.fd).then((err: BusinessError) => {
console.info("sync data succeed");
}).catch((err: BusinessError) => {
console.info("sync data failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
fs.closeSync(file);
});
fs.fdatasync
fdatasync(fd: number, callback: AsyncCallback<void>): void
实现文件内容数据同步,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
callback | AsyncCallback<void> | 是 | 异步将文件内容数据同步之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdatasync (file.fd, (err: BusinessError) => {
if (err) {
console.info("fdatasync failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("fdatasync success");
}
fs.closeSync(file);
});
fs.fdatasyncSync
fdatasyncSync(fd: number): void
以同步方法实现文件内容数据同步。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
let stat = fs.fdatasyncSync(file.fd);
fs.closeSync(file);
fs.symlink
symlink(target: string, srcPath: string): Promise<void>
基于文件路径创建符号链接,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
target | string | 是 | 源文件的应用沙箱路径。 |
srcPath | string | 是 | 符号链接文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/test";
fs.symlink(srcFile, dstFile).then(() => {
console.info("symlink succeed");
}).catch((err: BusinessError) => {
console.info("symlink failed with error message: " + err.message + ", error code: " + err.code);
});
fs.symlink
symlink(target: string, srcPath: string, callback: AsyncCallback<void>): void
基于文件路径创建符号链接,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
target | string | 是 | 源文件的应用沙箱路径。 |
srcPath | string | 是 | 符号链接文件的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步创建符号链接信息之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/test";
fs.symlink(srcFile, dstFile, (err: BusinessError) => {
if (err) {
console.info("symlink failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("symlink success");
}
});
fs.symlinkSync
symlinkSync(target: string, srcPath: string): void
以同步的方法基于文件路径创建符号链接。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
target | string | 是 | 源文件的应用沙箱路径。 |
srcPath | string | 是 | 符号链接文件的应用沙箱路径。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + "/test";
fs.symlinkSync(srcFile, dstFile);
fs.listFile
listFile(path: string, options?: {
recursion?: boolean;
listNum?: number;
filter?: Filter;
}): Promise
列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件夹的应用沙箱路径。 |
options | Object | 否 | 文件过滤选项。默认不进行过滤。 |
options参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
recursion | boolean | 否 | 是否递归子目录下文件名,默认为false。当recursion为false时,返回当前目录下满足过滤要求的文件名及文件夹名。当recursion为true时,返回此目录下所有满足过滤要求的文件的相对路径(以/开头)。 |
listNum | number | 否 | 列出文件名数量。当设置0时,列出所有文件,默认为0。 |
filter | Filter | 否 | 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。 |
返回值:
类型 | 说明 |
---|---|
Promise<string[]> | Promise对象。返回文件名数组。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import fs, { Filter } from '@ohos.file.fs';
class ListFileOption {
public recursion: boolean = false;
public listNum: number = 0;
public filter: Filter;
}
let option = new ListFileOption();
option.filter.suffix = [".png", ".jpg", ".jpeg"];
option.filter.displayName = ["*abc", "efg*"];
option.filter.fileSizeOver = 1024;
option.filter.lastModifiedAfter = new Date().getTime();
fs.listFile(pathDir, option).then((filenames: Array<string>) => {
console.info("listFile succeed");
for (let i = 0; i < filenames.length; i++) {
console.info("fileName: %s", filenames[i]);
}
}).catch((err: BusinessError) => {
console.info("list file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.listFile
listFile(path: string, options?: {
recursion?: boolean;
listNum?: number;
filter?: Filter;
}, callback: AsyncCallback
列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤,使用Callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件夹的应用沙箱路径。 |
options | Object | 否 | 文件过滤选项。默认不进行过滤。 |
callback | AsyncCallback<string[]> | 是 | 异步列出文件名数组之后的回调。 |
options参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
recursion | boolean | 否 | 是否递归子目录下文件名,默认为false。当recursion为false时,返回当前目录下满足过滤要求的文件名及文件夹名。当recursion为true时,返回此目录下所有满足过滤要求的文件的相对路径(以/开头)。 |
listNum | number | 否 | 列出文件名数量。当设置0时,列出所有文件,默认为0。 |
filter | Filter | 否 | 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import fs, { Filter } from '@ohos.file.fs';
class ListFileOption {
public recursion: boolean = false;
public listNum: number = 0;
public filter: Filter;
}
let option = new ListFileOption();
option.filter.suffix = [".png", ".jpg", ".jpeg"];
option.filter.displayName = ["*abc", "efg*"];
option.filter.fileSizeOver = 1024;
option.filter.lastModifiedAfter = new Date().getTime();
fs.listFile(pathDir, option, (err: BusinessError, filenames: Array<string>) => {
if (err) {
console.info("list file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("listFile succeed");
for (let i = 0; i < filenames.length; i++) {
console.info("filename: %s", filenames[i]);
}
}
});
fs.listFileSync
listFileSync(path: string, options?: { recursion?: boolean; listNum?: number; filter?: Filter; }): string[]
以同步方式列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件夹的应用沙箱路径。 |
options | Object | 否 | 文件过滤选项。默认不进行过滤。 |
options参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
recursion | boolean | 否 | 是否递归子目录下文件名,默认为false。当recursion为false时,返回当前目录下满足过滤要求的文件名及文件夹名。当recursion为true时,返回此目录下所有满足过滤要求的文件的相对路径(以/开头)。 |
listNum | number | 否 | 列出文件名数量。当设置0时,列出所有文件,默认为0。 |
filter | Filter | 否 | 文件过滤选项。当前仅支持后缀名匹配、文件名模糊查询、文件大小过滤、最近修改时间过滤。 |
返回值:
类型 | 说明 |
---|---|
string[] | 返回文件名数组。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import fs, { Filter } from '@ohos.file.fs';
class ListFileOption {
public recursion: boolean = false;
public listNum: number = 0;
public filter: Filter;
}
let option = new ListFileOption();
option.filter.suffix = [".png", ".jpg", ".jpeg"];
option.filter.displayName = ["*abc", "efg*"];
option.filter.fileSizeOver = 1024;
option.filter.lastModifiedAfter = new Date().getTime();
let filenames = fs.listFileSync(pathDir, option);
console.info("listFile succeed");
for (let i = 0; i < filenames.length; i++) {
console.info("filename: %s", filenames[i]);
}
fs.lseek11+
lseek(fd: number, offset: number, whence?: WhenceType): number
调整文件偏置指针位置。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 文件描述符。 |
offset | number | 是 | 相对偏移位置。 |
whence | WhenceType | 否 | 偏移指针相对位置类型。 |
返回值:
类型 | 说明 |
---|---|
number | 当前文件偏置指针位置(相对于文件头的偏移量)。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
console.info('The current offset is at ' + fs.lseek(file.fd, 5, fs.WhenceType.SEEK_SET));
fs.closeSync(file);
fs.moveDir10+
moveDir(src: string, dest: string, mode?: number): Promise<void>
移动源文件夹至目标路径下,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 否 | 移动模式。默认mode为0。 - mode为0,文件夹级别抛异常。若目标文件夹下存在与源文件夹名冲突的非空文件夹,则抛出异常。 - mode为1,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。 - mode为2,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 - mode为3,文件夹级别强制覆盖。移动源文件夹至目标文件夹下,目标文件夹下移动的文件夹内容与源文件夹完全一致。若目标文件夹下存在与源文件夹名冲突的文件夹,该文件夹下所有原始文件将不会保留。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
// move directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
fs.moveDir(srcPath, destPath, 1).then(() => {
console.info("move directory succeed");
}).catch((err: BusinessError) => {
console.info("move directory failed with error message: " + err.message + ", error code: " + err.code);
});
fs.moveDir10+
moveDir(src: string, dest: string, mode?: number, callback: AsyncCallback<void, Array<ConflictFiles>>): void
移动源文件夹至目标路径下,使用Callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 否 | 移动模式。默认mode为0。 - mode为0,文件夹级别抛异常。若目标文件夹下存在与源文件夹名冲突的文件夹,则抛出异常。 - mode为1,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。 - mode为2,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 - mode为3,文件夹级别强制覆盖。移动源文件夹至目标文件夹下,目标文件夹下移动的文件夹内容与源文件夹完全一致。若目标文件夹下存在与源文件夹名冲突的文件夹,该文件夹下所有原始文件将不会保留。 |
callback | AsyncCallback<void, Array<ConflictFiles>> | 是 | 异步移动文件夹之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import fs, { ConflictFiles } from '@ohos.file.fs';
// move directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
fs.moveDir(srcPath, destPath, 1, (err: BusinessError<Array<ConflictFiles>>) => {
if (err && err.code == 13900015) {
for (let i = 0; i < data.length; i++) {
console.info("move directory failed with conflicting files: " + data[i].srcFile + " " + data[i].destFile);
}
} else if (err) {
console.info("move directory failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("move directory succeed");
}
});
fs.moveDirSync10+
moveDirSync(src: string, dest: string, mode?: number): void
以同步方法移动源文件夹至目标路径下。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件夹的应用沙箱路径。 |
dest | string | 是 | 目标文件夹的应用沙箱路径。 |
mode | number | 否 | 移动模式。默认mode为0。 - mode为0,文件夹级别抛异常。若目标文件夹下存在与源文件夹名冲突的文件夹,则抛出异常。 - mode为1,文件级别抛异常。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则抛出异常。源文件夹下未冲突的文件全部移动至目标文件夹下,目标文件夹下未冲突文件将继续保留,且冲突文件信息将在抛出异常的data属性中以Array<ConflictFiles>形式提供。 - mode为2,文件级别强制覆盖。目标文件夹下存在与源文件夹名冲突的文件夹,若冲突文件夹下存在同名文件,则强制覆盖冲突文件夹下所有同名文件,未冲突文件将继续保留。 - mode为3,文件夹级别强制覆盖。移动源文件夹至目标文件夹下,目标文件夹下移动的文件夹内容与源文件夹完全一致。若目标文件夹下存在与源文件夹名冲突的文件夹,该文件夹下所有原始文件将不会保留。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
// move directory from srcPath to destPath
let srcPath = pathDir + "/srcDir/";
let destPath = pathDir + "/destDir/";
try {
fs.moveDirSync(srcPath, destPath, 1);
console.info("move directory succeed");
} catch (err) {
console.info("move directory failed with error message: " + err.message + ", error code: " + err.code);
}
fs.moveFile
moveFile(src: string, dest: string, mode?: number): Promise<void>
移动文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件的应用沙箱路径。 |
dest | string | 是 | 目的文件的应用沙箱路径。 |
mode | number | 否 | 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let srcPath = pathDir + "/source.txt";
let destPath = pathDir + "/dest.txt";
fs.moveFile(srcPath, destPath, 0).then(() => {
console.info("move file succeed");
}).catch((err: BusinessError) => {
console.info("move file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.moveFile
moveFile(src: string, dest: string, mode?: number, callback: AsyncCallback<void>): void
移动文件,使用Callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件的应用沙箱路径。 |
dest | string | 是 | 目的文件的应用沙箱路径。 |
mode | number | 否 | 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。 |
callback | AsyncCallback<void> | 是 | 异步移动文件之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let srcPath = pathDir + "/source.txt";
let destPath = pathDir + "/dest.txt";
fs.moveFile(srcPath, destPath, 0, (err: BusinessError) => {
if (err) {
console.info("move file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("move file succeed");
}
});
fs.moveFileSync
moveFileSync(src: string, dest: string, mode?: number): void
以同步方式移动文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 源文件的应用沙箱路径。 |
dest | string | 是 | 目的文件的应用沙箱路径。 |
mode | number | 否 | 移动模式。若mode为0,移动位置存在同名文件时,强制移动覆盖。若mode为1,移动位置存在同名文件时,抛出异常。默认为0。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let srcPath = pathDir + "/source.txt";
let destPath = pathDir + "/dest.txt";
fs.moveFileSync(srcPath, destPath, 0);
console.info("move file succeed");
fs.mkdtemp
mkdtemp(prefix: string): Promise<string>
创建临时目录,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
prefix | string | 是 | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象。返回生成的唯一目录路径。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
fs.mkdtemp(pathDir + "/XXXXXX").then((dir: string) => {
console.info("mkdtemp succeed:" + dir);
}).catch((err: BusinessError) => {
console.info("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
});
fs.mkdtemp
mkdtemp(prefix: string, callback: AsyncCallback<string>): void
创建临时目录,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
prefix | string | 是 | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
callback | AsyncCallback<string> | 是 | 异步创建临时目录之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
fs.mkdtemp(pathDir + "/XXXXXX", (err: BusinessError, res: string) => {
if (err) {
console.info("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("mkdtemp success");
}
});
fs.mkdtempSync
mkdtempSync(prefix: string): string
以同步的方法创建临时目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
prefix | string | 是 | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
返回值:
类型 | 说明 |
---|---|
string | 产生的唯一目录路径。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let res = fs.mkdtempSync(pathDir + "/XXXXXX");
fs.utimes11+
utimes(path: string, mtime: number): void
修改文件最近访问时间属性。
系统能力:SystemCapability.FileManagement.File.FileIO
参数: | 参数名 |类型 |必填 |说明 | |————|——|——|————————————————————| |path|string| 是 |文件的应用沙箱路径。| |mtime|number| 是 |待更新的时间戳。自1970年1月1日起至目标时间的毫秒数。仅支持修改文件最近访问时间属性。|
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
fs.writeSync(file.fd, 'test data');
fs.closeSync(file);
fs.utimes(filePath, new Date().getTime());
fs.createRandomAccessFile10+
createRandomAccessFile(file: string|File, mode?: number): Promise<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错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
fs.createRandomAccessFile(file).then((randomAccessFile: fs.RandomAccessFile) => {
console.info("randomAccessFile fd: " + randomAccessFile.fd);
randomAccessFile.close();
}).catch((err: BusinessError) => {
console.info("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
fs.closeSync(file);
});
fs.createRandomAccessFile10+
createRandomAccessFile(file: string|File, mode?: number, callback: AsyncCallback<RandomAccessFile>): void
基于文件路径或文件对象创建RandomAccessFile文件对象,使用callback异步回调。
系统能力: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对象。 |
callback | AsyncCallback<RandomAccessFile> | 是 | 异步创建RandomAccessFile对象之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
fs.createRandomAccessFile(file, (err: BusinessError, randomAccessFile: fs.RandomAccessFile) => {
if (err) {
console.info("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("randomAccessFilefile fd: " + randomAccessFile.fd);
randomAccessFile.close();
}
fs.closeSync(file);
});
fs.createRandomAccessFileSync10+
createRandomAccessFileSync(file: string|File, mode?: number): RandomAccessFile
基于文件路径或文件对象创建RandomAccessFile文件对象。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
file | string|File | 是 | 文件的应用沙箱路径或已打开的File对象 |
mode | number | 否 | 创建文件RandomAccessFile对象的选项,仅当传入文件沙箱路径时生效,必须指定如下选项中的一个,默认以只读方式创建: - 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错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
let randomaccessfile = fs.createRandomAccessFileSync(file);
randomaccessfile.close();
fs.createStream
createStream(path: string, mode: string): Promise<Stream>
基于文件路径打开文件流,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
返回值:
类型 | 说明 |
---|---|
Promise<Stream> | Promise对象。返回文件流的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.createStream(filePath, "r+").then((stream: fs.Stream) => {
console.info("createStream succeed");
}).catch((err: BusinessError) => {
console.info("createStream failed with error message: " + err.message + ", error code: " + err.code);
});
fs.createStream
createStream(path: string, mode: string, callback: AsyncCallback<Stream>): void
基于文件路径打开文件流,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
callback | AsyncCallback<Stream> | 是 | 异步打开文件流之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
fs.createStream(filePath, "r+", (err: BusinessError, stream: fs.Stream) => {
if (err) {
console.info("create stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("create stream success");
}
});
fs.createStreamSync
createStreamSync(path: string, mode: string): Stream
以同步方法基于文件路径打开文件流。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 文件的应用沙箱路径。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
返回值:
类型 | 说明 |
---|---|
Stream | 返回文件流的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
fs.fdopenStream
fdopenStream(fd: number, mode: string): Promise<Stream>
基于文件描述符打开文件流,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
返回值:
类型 | 说明 |
---|---|
Promise<Stream> | Promise对象。返回文件流的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdopenStream(file.fd, "r+").then((stream: fs.Stream) => {
console.info("openStream succeed");
stream.closeSync();
}).catch((err: BusinessError) => {
console.info("openStream failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
fs.closeSync(file);
});
fs.fdopenStream
fdopenStream(fd: number, mode: string, callback: AsyncCallback<Stream>): void
基于文件描述符打开文件流,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
callback | AsyncCallback<Stream> | 是 | 异步打开文件流之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
fs.fdopenStream(file.fd, "r+", (err: BusinessError, stream: fs.Stream) => {
if (err) {
console.info("fdopen stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("fdopen stream success");
stream.closeSync();
}
fs.closeSync(file);
});
fs.fdopenStreamSync
fdopenStreamSync(fd: number, mode: string): Stream
以同步方法基于文件描述符打开文件流。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 已打开的文件描述符。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
返回值:
类型 | 说明 |
---|---|
Stream | 返回文件流的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY|fs.OpenMode.CREATE);
let ss = fs.fdopenStreamSync(file.fd, "r+");
ss.closeSync();
fs.closeSync(file);
fs.createWatcher10+
createWatcher(path: string, events: number, listener: WatchEventListener): Watcher
创建Watcher对象,用来监听文件或目录变动。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 监听文件或目录的沙箱路径。 |
events | number | 是 | 监听变动的事件集,多个事件通过或(|)的方式进行集合。 - 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,监听以上所有事件。 |
listener | WatchEventListener | 是 | 监听事件发生后的回调。监听事件每发生一次,回调一次。 |
返回值:
类型 | 说明 |
---|---|
Watcher | 返回Watcher对象。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import fs, { WatchEvent } from '@ohos.file.fs';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
let watcher = fs.createWatcher(filePath, 0x2|0x10, (watchEvent: WatchEvent) => {
if (watchEvent.event == 0x2) {
console.info(watchEvent.fileName + 'was modified');
} else if (watchEvent.event == 0x10) {
console.info(watchEvent.fileName + 'was closed');
}
});
watcher.start();
fs.writeSync(file.fd, 'test');
fs.closeSync(file);
watcher.stop();
WatchEventListener10+
(event: WatchEvent): void
事件监听类。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | WatchEvent | 是 | 回调的事件类。 |
WatchEvent10+
事件类
系统能力:SystemCapability.FileManagement.File.FileIO
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
fileName | string | 是 | 否 | 发生监听事件的文件名。 |
event | number | 是 | 否 | 发生的监听事件。与createWatcher中events事件集一致。 |
cookie | number | 是 | 否 | 绑定相关事件的cookie。当前仅支持事件IN_MOVED_FROM与IN_MOVED_TO,同一个文件的移动事件IN_MOVED_FROM和IN_MOVED_TO具有相同的cookie值。 |
Stat
文件具体信息,在调用Stat的方法前,需要先通过stat()方法(同步或异步)来构建一个Stat实例。
系统能力:SystemCapability.FileManagement.File.FileIO
属性
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
ino | number | 是 | 否 | 标识该文件。通常同设备上的不同文件的INO不同。 |
mode | number | 是 | 否 | 表示文件权限,各特征位的含义如下: 说明: 以下值为八进制,取得的返回值为十进制,请换算后查看。 - 0o400:用户读,对于普通文件,所有者可读取文件;对于目录,所有者可读取目录项。 - 0o200:用户写,对于普通文件,所有者可写入文件;对于目录,所有者可创建/删除目录项。 - 0o100:用户执行,对于普通文件,所有者可执行文件;对于目录,所有者可在目录中搜索给定路径名。 - 0o040:用户组读,对于普通文件,所有用户组可读取文件;对于目录,所有用户组可读取目录项。 - 0o020:用户组写,对于普通文件,所有用户组可写入文件;对于目录,所有用户组可创建/删除目录项。 - 0o010:用户组执行,对于普通文件,所有用户组可执行文件;对于目录,所有用户组是否可在目录中搜索给定路径名。 - 0o004:其他读,对于普通文件,其余用户可读取文件;对于目录,其他用户组可读取目录项。 - 0o002:其他写,对于普通文件,其余用户可写入文件;对于目录,其他用户组可创建/删除目录项。 - 0o001:其他执行,对于普通文件,其余用户可执行文件;对于目录,其他用户组可在目录中搜索给定路径名。 |
uid | number | 是 | 否 | 文件所有者的ID。 |
gid | number | 是 | 否 | 文件所有组的ID。 |
size | number | 是 | 否 | 文件的大小,以字节为单位。仅对普通文件有效。 |
atime | number | 是 | 否 | 上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 |
mtime | number | 是 | 否 | 上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 |
ctime | number | 是 | 否 | 最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。 |
isBlockDevice
isBlockDevice(): boolean
用于判断文件是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
boolean | 表示文件是否是块特殊设备。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let isBLockDevice = fs.statSync(filePath).isBlockDevice();
isCharacterDevice
isCharacterDevice(): boolean
用于判断文件是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
boolean | 表示文件是否是字符特殊设备。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let isCharacterDevice = fs.statSync(filePath).isCharacterDevice();
isDirectory
isDirectory(): boolean
用于判断文件是否是目录。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
boolean | 表示文件是否是目录。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let dirPath = pathDir + "/test";
let isDirectory = fs.statSync(dirPath).isDirectory();
isFIFO
isFIFO(): boolean
用于判断文件是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
boolean | 表示文件是否是 FIFO。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let isFIFO = fs.statSync(filePath).isFIFO();
isFile
isFile(): boolean
用于判断文件是否是普通文件。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
boolean | 表示文件是否是普通文件。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let isFile = fs.statSync(filePath).isFile();
isSocket
isSocket(): boolean
用于判断文件是否是套接字。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
boolean | 表示文件是否是套接字。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let isSocket = fs.statSync(filePath).isSocket();
isSymbolicLink
isSymbolicLink(): boolean
用于判断文件是否是符号链接。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
boolean | 表示文件是否是符号链接。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test";
let isSymbolicLink = fs.statSync(filePath).isSymbolicLink();
Stream
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。
close
close(): Promise<void>
关闭文件流,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。返回表示异步关闭文件流的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
ss.close().then(() => {
console.info("close fileStream succeed");
}).catch((err: BusinessError) => {
console.info("close fileStream failed with error message: " + err.message + ", error code: " + err.code);
});
close
close(callback: AsyncCallback<void>): void
异步关闭文件流,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 异步关闭文件流之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
ss.close((err: BusinessError) => {
if (err) {
console.info("close stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("close stream success");
}
});
closeSync
closeSync(): void
同步关闭文件流。
系统能力:SystemCapability.FileManagement.File.FileIO
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
ss.closeSync();
flush
flush(): Promise<void>
刷新文件流,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。返回表示异步刷新文件流的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
ss.flush().then(() => {
console.info("flush succeed");
}).catch((err: BusinessError) => {
console.info("flush failed with error message: " + err.message + ", error code: " + err.code);
});
flush
flush(callback: AsyncCallback<void>): void
异步刷新文件流,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 异步刷新文件流后的回调函数。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
ss.flush((err: BusinessError) => {
if (err) {
console.info("flush stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("flush success");
}
});
flushSync
flushSync(): void
同步刷新文件流。
系统能力:SystemCapability.FileManagement.File.FileIO
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
ss.flushSync();
write
write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>
将数据写入流文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。默认缓冲区长度。 - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象。返回实际写入的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
class Option {
offset: number = 0;
length: number = 0;
encoding: string = 'utf-8';
}
let option = new Option();
option.offset = 5;
option.length = 5;
ss.write("hello, world", option).then((number: number) => {
console.info("write succeed and size is:" + number);
}).catch((err: BusinessError) => {
console.info("write failed with error message: " + err.message + ", error code: " + err.code);
});
write
write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void
将数据写入流文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。仅支持 ‘utf-8’。 |
callback | AsyncCallback<number> | 是 | 异步写入完成后执行的回调函数。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
class Option {
offset: number = 0;
length: number = 0;
encoding: string = 'utf-8';
}
let option = new Option();
option.offset = 5;
option.length = 5;
ss.write("hello, world", option, (err: BusinessError, bytesWritten: number) => {
if (err) {
console.info("write stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
if (bytesWritten) {
console.info("write succeed and size is:" + bytesWritten);
}
}
});
writeSync
writeSync(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number
以同步方法将数据写入流文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
number | 实际写入的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath,"r+");
class Option {
offset: number = 0;
length: number = 0;
encoding: string = 'utf-8';
}
let option = new Option();
option.offset = 5;
option.length = 5;
let num = ss.writeSync("hello, world", option);
read
read(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>
从流文件读取数据,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象。返回读取的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import buffer from '@ohos.buffer';
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
let arrayBuffer = new ArrayBuffer(4096);
class Option {
offset: number = 0;
length: number = 0;
}
let option = new Option();
option.offset = 5;
option.length = 5;
ss.read(arrayBuffer, option).then((readLen: number) => {
console.info("read data succeed");
let buf = buffer.from(arrayBuffer, 0, readLen);
console.log(`The content of file: ${buf.toString()}`);
}).catch((err: BusinessError) => {
console.info("read data failed with error message: " + err.message + ", error code: " + err.code);
});
read
read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback<number>): void
从流文件读取数据,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读. |
callback | AsyncCallback<number> | 是 | 异步从流文件读取数据之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
import buffer from '@ohos.buffer';
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
let arrayBuffer = new ArrayBuffer(4096);
class Option {
offset: number = 0;
length: number = 0;
}
let option = new Option();
option.offset = 5;
option.length = 5;
ss.read(arrayBuffer, option, (err: BusinessError, readLen: number) => {
if (err) {
console.info("read stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("read data succeed");
let buf = buffer.from(arrayBuffer, 0, readLen);
console.log(`The content of file: ${buf.toString()}`);
}
});
readSync
readSync(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number
以同步方法从流文件读取数据。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 |
返回值:
类型 | 说明 |
---|---|
number | 实际读取的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
class Option {
offset: number = 0;
length: number = 0;
}
let option = new Option();
option.offset = 5;
option.length = 5;
let buf = new ArrayBuffer(4096);
let num = ss.readSync(buf, option);
File
由open接口打开的File对象。
系统能力:SystemCapability.FileManagement.File.FileIO
属性
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
fd | number | 是 | 否 | 打开的文件描述符。 |
path10+ | string | 是 | 否 | 文件路径。 |
name10+ | string | 是 | 否 | 文件名。 |
getParent11+
getParent(): string
获取File对象对应文件父目录。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
---|---|
string | 返回父目录路径。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
console.info('The parent path is: ' + file.getParent());
fs.closeSync(file);
lock
lock(exclusive?: boolean): Promise<void>
文件阻塞式施加共享锁或独占锁,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
exclusive | boolean | 否 | 是否施加独占锁,默认false。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象。无返回值。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
file.lock(true).then(() => {
console.log("lock file successful");
}).catch((err: BusinessError) => {
console.info("lock file failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
fs.closeSync(file);
});
lock
lock(exclusive?: boolean, callback: AsyncCallback<void>): void
文件阻塞式施加共享锁或独占锁,使Callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
exclusive | boolean | 否 | 是否施加独占锁,默认false。 |
callback | AsyncCallback<void> | 是 | 异步文件上锁之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
file.lock(true, (err: BusinessError) => {
if (err) {
console.info("lock file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.log("lock file successful");
}
fs.closeSync(file);
});
tryLock
tryLock(exclusive?: boolean): void
文件非阻塞式施加共享锁或独占锁。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
exclusive | boolean | 否 | 是否施加独占锁,默认false。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
file.tryLock(true);
console.log("lock file successful");
fs.closeSync(file);
unlock
unlock(): void
以同步方式给文件解锁。
系统能力:SystemCapability.FileManagement.File.FileIO
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let file = fs.openSync(pathDir + "/test.txt", fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
file.tryLock(true);
file.unlock();
console.log("unlock file successful");
fs.closeSync(file);
RandomAccessFile
随机读写文件流,在调用RandomAccessFile的方法前,需要先通过createRandomAccess()方法(同步或异步)来构建一个RandomAccessFile实例。
系统能力:SystemCapability.FileManagement.File.FileIO
属性
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
fd | number | 是 | 否 | 打开的文件描述符。 |
filePointer | number | 是 | 是 | RandomAccessFile对象的偏置指针。 |
setFilePointer10+
setFilePointer(): void
设置文件偏置指针
系统能力:SystemCapability.FileManagement.File.FileIO
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let randomAccessFile = fs.createRandomAccessFileSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
randomAccessFile.setFilePointer(1);
randomAccessFile.close();
close10+
close(): void
同步关闭RandomAccessFile对象。
系统能力:SystemCapability.FileManagement.File.FileIO
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let randomAccessFile = fs.createRandomAccessFileSync(filePath, fs.OpenMode.READ_WRITE|fs.OpenMode.CREATE);
randomAccessFile.close();
write10+
write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>
将数据写入文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。默认缓冲区长度。 - offset,number类型,表示期望写入文件位置(基于当前filePointer加上offset的位置)。可选,默认从偏置指针(filePointer)开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象。返回实际写入的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
let randomaccessfile = fs.createRandomAccessFileSync(file);
let bufferLength: number = 4096;
class Option {
offset: number = 0;
length: number = 0;
encoding: string = 'utf-8';
}
let option = new Option();
option.offset = 1;
option.length = 5;
let arrayBuffer = new ArrayBuffer(bufferLength);
randomaccessfile.write(arrayBuffer, option).then((bytesWritten: number) => {
console.info("randomAccessFile bytesWritten: " + bytesWritten);
}).catch((err: BusinessError) => {
console.info("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
randomaccessfile.close();
fs.closeSync(file);
});
write10+
write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void
将数据写入文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望写入文件位置(基于当前filePointer加上offset的位置)。可选,默认从偏置指针(filePointer)开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。仅支持 ‘utf-8’。 |
callback | AsyncCallback<number> | 是 | 异步写入完成后执行的回调函数。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
let randomAccessFile = fs.createRandomAccessFileSync(file);
let bufferLength: number = 4096;
class Option {
offset: number = 0;
length: number = bufferLength;
encoding: string = 'utf-8';
}
let option = new Option();
option.offset = 1;
let arrayBuffer = new ArrayBuffer(bufferLength);
randomAccessFile.write(arrayBuffer, option, (err: BusinessError, bytesWritten: number) => {
if (err) {
console.info("write failed with error message: " + err.message + ", error code: " + err.code);
} else {
if (bytesWritten) {
console.info("write succeed and size is:" + bytesWritten);
}
}
randomAccessFile.close();
fs.closeSync(file);
});
writeSync10+
writeSync(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number
以同步方法将数据写入文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望写入文件位置(基于当前filePointer加上offset的位置)。可选,默认从偏置指针(filePointer)开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。仅支持 ‘utf-8’。 |
返回值:
类型 | 说明 |
---|---|
number | 实际写入的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let randomaccessfile = fs.createRandomAccessFileSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
class Option {
offset: number = 0;
length: number = 0;
encoding: string = 'utf-8';
}
let option = new Option();
option.offset = 5;
option.length = 5;
let bytesWritten = randomaccessfile.writeSync("hello, world", option);
randomaccessfile.close();
read10+
read(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>
从文件读取数据,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文件位置(基于当前filePointer加上offset的位置)。可选,默认从偏置指针(filePointer)开始读。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象。返回读取的结果。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
let randomaccessfile = fs.createRandomAccessFileSync(file);
let bufferLength: number = 4096;
class Option {
offset: number = 0;
length: number = bufferLength;
}
let option = new Option();
option.offset = 1;
option.length = 5;
let arrayBuffer = new ArrayBuffer(bufferLength);
randomaccessfile.read(arrayBuffer, option).then((readLength: number) => {
console.info("randomAccessFile readLength: " + readLength);
}).catch((err: BusinessError) => {
console.info("create randomAccessFile failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
randomaccessfile.close();
fs.closeSync(file);
});
read10+
read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback<number>): void
从文件读取数据,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文件位置(基于当前filePointer加上offset的位置)。可选,默认从偏置指针(filePointer)开始读. |
callback | AsyncCallback<number> | 是 | 异步从流文件读取数据之后的回调。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
import { BusinessError } from '@ohos.base';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
let randomaccessfile = fs.createRandomAccessFileSync(file);
let length: number = 20;
class Option {
offset: number = 0;
length: number = length;
}
let option = new Option();
option.offset = 1;
option.length = 5;
let arrayBuffer = new ArrayBuffer(length);
randomaccessfile.read(arrayBuffer, option, (err: BusinessError, readLength: number) => {
if (err) {
console.info("read failed with error message: " + err.message + ", error code: " + err.code);
} else {
if (readLength) {
console.info("read succeed and size is:" + readLength);
}
}
randomAccessFile.close();
fs.closeSync(file);
});
readSync10+
readSync(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number
以同步方法从文件读取数据。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文文件位置(基于当前filePointer加上offset的位置)。可选,默认从偏置指针(filePointer)开始读。 |
返回值:
类型 | 说明 |
---|---|
number | 实际读取的长度。 |
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.CREATE|fs.OpenMode.READ_WRITE);
let randomaccessfile = fs.createRandomAccessFileSync(file);
let length: number = 4096;
let arrayBuffer = new ArrayBuffer(length);
let readLength = randomaccessfile.readSync(arrayBuffer);
randomaccessfile.close();
fs.closeSync(file);
Watcher10+
文件目录变化监听对象。由createWatcher接口获得。
start10+
start(): void
开启监听。
系统能力:SystemCapability.FileManagement.File.FileIO
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let watcher = fs.createWatcher(filePath, 0xfff, () => {});
watcher.start();
watcher.stop();
stop10+
stop(): void
停止监听。
系统能力:SystemCapability.FileManagement.File.FileIO
错误码:
接口抛出错误码的详细介绍请参见基础文件IO错误码。
示例:
let filePath = pathDir + "/test.txt";
let watcher = fs.createWatcher(filePath, 0xfff, () => {});
watcher.start();
watcher.stop();
OpenMode
open接口flags参数常量。文件打开标签。
系统能力:SystemCapability.FileManagement.File.FileIO
名称 | 类型 | 值 | 说明 |
---|---|---|---|
READ_ONLY | number | 0o0 | 只读打开。 |
WRITE_ONLY | number | 0o1 | 只写打开。 |
READ_WRITE | number | 0o2 | 读写打开。 |
CREATE | number | 0o100 | 若文件不存在,则创建文件。 |
TRUNC | number | 0o1000 | 如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。 |
APPEND | number | 0o2000 | 以追加方式打开,后续写将追加到文件末尾。 |
NONBLOCK | number | 0o4000 | 如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。 |
DIR | number | 0o200000 | 如果path不指向目录,则出错。 |
NOFOLLOW | number | 0o400000 | 如果path指向符号链接,则出错。 |
SYNC | number | 0o4010000 | 以同步IO的方式打开文件。 |
Filter10+
文件过滤配置项类型,支持listFile接口使用。
系统能力:SystemCapability.FileManagement.File.FileIO
名称 | 类型 | 说明 |
---|---|---|
suffix | Array<string> | 文件后缀名完全匹配,各个关键词OR关系。 |
displayName | Array<string> | 文件名模糊匹配,各个关键词OR关系。当前仅支持通配符*。 |
mimeType | Array<string> | mime类型完全匹配,各个关键词OR关系。 |
fileSizeOver | number | 文件大小匹配,大于等于指定大小的文件。 |
lastModifiedAfter | number | 文件最近修改时间匹配,在指定时间点及之后的文件。 |
excludeMedia | boolean | 是否排除Media中已有的文件。 |
ConflictFiles10+
冲突文件信息,支持copyDir及moveDir接口使用。
系统能力:SystemCapability.FileManagement.File.FileIO
名称 | 类型 | 说明 |
---|---|---|
srcFile | string | 源冲突文件路径。 |
destFile | string | 目标冲突文件路径。 |
Options11+
可选项类型,支持readLines接口使用。
系统能力:SystemCapability.FileManagement.File.FileIO
名称 | 类型 | 说明 |
---|---|---|
encoding | string | 文件编码方式。可选项。 |
WhenceType11+
枚举,文件偏移指针相对偏移位置类型,支持lseek接口使用。
系统能力:SystemCapability.FileManagement.File.FileIO
名称 | 值 | 说明 |
---|---|---|
SEEK_SET | 0 | 文件起始位置处。 |
SEEK_CUR | 1 | 当前文件偏置指针位置处。 |
SEEK_END | 2 | 文件末尾位置处。 |
你可能感兴趣的鸿蒙文章
harmony 鸿蒙BundleStatusCallback
harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)
harmony 鸿蒙@ohos.distributedBundle (分布式包管理)
harmony 鸿蒙@ohos.bundle (Bundle模块)
harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦