
HarmonyOS API:@ohos.file.fs (文件管理)
版本:v3.1 Beta
@ohos.file.fs (文件管理)
更新时间: 2023-02-17 09:19
该模块为基础文件操作API,提供基础文件操作能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。
说明
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块支持对错误码进行处理,错误码及其适配方式请参考错误码适配指导。
导入模块
使用说明
使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:
Stage模型
FA模型
FA模型context的具体获取方法参见FA模型。
fs.stat
stat(file: string|number): Promise<Stat>
获取文件信息,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
Promise<Stat> | Promise对象。返回文件的具体信息。 |
示例:
fs.stat
stat(file: string|number, callback: AsyncCallback<Stat>): void
获取文件信息,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
callback | AsyncCallback<Stat> | 是 | 异步获取文件的信息之后的回调。 |
示例:
fs.statSync
statSync(file: string|number): Stat
以同步方法获取文件的信息。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
Stat | 表示文件的具体信息。 |
示例:
fs.access
access(path: string): Promise<boolean>
检查文件是否存在,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<boolean> | Promise对象。返回boolean。 |
示例:
fs.access
access(path: string, callback: AsyncCallback<boolean>): void
检查文件是否存在,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件应用沙箱路径。 |
callback | AsyncCallback<boolean> | 是 | 异步检查文件是否存在的回调。 |
示例:
fs.accessSync
accessSync(path: string): boolean
以同步方法检查文件是否存在。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件应用沙箱路径。 |
示例:
fs.close
close(file: File|number): Promise<void>
关闭文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | File|number | 是 | 已打开的File对象或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
fs.close
close(file: File|number, callback: AsyncCallback<void>): void
关闭文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | File|number | 是 | 已打开的File对象或已打开的文件描述符fd。 |
callback | AsyncCallback<void> | 是 | 异步关闭文件之后的回调。 |
示例:
fs.closeSync
closeSync(file: File|number): void
以同步方法关闭文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | File|number | 是 | 已打开的File对象或已打开的文件描述符fd。 |
示例:
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对象。无返回值。 |
示例:
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> | 是 | 异步复制文件之后的回调。 |
示例:
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:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
示例:
fs.mkdir
mkdir(path: string): Promise<void>
创建目录,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
fs.mkdir
mkdir(path: string, callback: AsyncCallback<void>): void
创建目录,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步创建目录操作完成之后的回调。 |
示例:
fs.mkdirSync
mkdirSync(path: string): void
以同步方法创建目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
示例:
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对象。 |
示例:
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的方式打开文件。 |
示例:
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对象。 |
示例:
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对象。返回读取的结果。 |
示例:
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> | 是 | 异步读取数据之后的回调。 |
示例:
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 | 实际读取的长度。 |
示例:
fs.rmdir
rmdir(path: string): Promise<void>
删除整个目录,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
fs.rmdir
rmdir(path: string, callback: AsyncCallback<void>): void
删除整个目录,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步删除目录之后的回调。 |
示例:
fs.rmdirSync
rmdirSync(path: string): void
以同步方法删除目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
示例:
fs.unlink
unlink(path: string): Promise<void>
删除单个文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
fs.unlink
unlink(path: string, callback: AsyncCallback<void>): void
删除文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步删除文件之后的回调。 |
示例:
fs.unlinkSync
unlinkSync(path: string): void
以同步方法删除文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
示例:
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对象。返回实际写入的长度。 |
示例:
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> | 是 | 异步将数据写入完成后执行的回调函数。 |
示例:
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 | 实际写入的长度。 |
示例:
fs.truncate
truncate(file: string|number, len?: number): Promise<void>
截断文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
fs.truncate
truncate(file: string|number, len?: number, callback: AsyncCallback<void>): void
截断文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。 |
callback | AsyncCallback<void> | 是 | 回调函数,本调用无返回值。 |
示例:
fs.truncateSync
truncateSync(file: string|number, len?: number): void
以同步方法截断文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。 |
示例:
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对象。返回读取文件的内容。 |
示例:
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> | 是 | 回调函数,返回读取文件的内容。 |
示例:
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 | 返回读取文件的内容。 |
示例:
fs.lstat
lstat(path: string): Promise<Stat>
获取链接文件信息,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<Stat> | promise对象,返回文件对象,表示文件的具体信息,详情见stat。 |
示例:
fs.lstat
lstat(path: string, callback: AsyncCallback<Stat>): void
获取链接文件信息,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
callback | AsyncCallback<Stat> | 是 | 回调函数,返回文件的具体信息。 |
示例:
