打开文件

2024-12-04 15:53:34
143次阅读
0个评论

fs.open(Promise异步返回)

open(path: string, mode?: number): Promise

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

原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径或文件URI,使用URI作为入参时,仅支持打开文件,不支持创建。
mode number 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开: - OpenMode.READ_ONLY(0o0):只读打开。 - OpenMode.WRITE_ONLY(0o1):只写打开。 - OpenMode.READ_WRITE(0o2):读写打开。 给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项: - OpenMode.CREATE(0o100):若文件不存在,则创建文件。(path为URI时不支持创建文件) - 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 Promise对象。返回File对象。

错误码:

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

示例:

import { BusinessError } from '@kit.BasicServicesKit';
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.error("open file failed with error message: " + err.message + ", error code: " + err.code);
});

fs.open(Callback异步返回)

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

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

支持使用URI打开文件。

原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。

参数:

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

错误码:

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

示例:

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

fs.open(Callback异步返回)

open(path: string, callback: AsyncCallback): void

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

原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。

参数:

参数名 类型 必填 说明
path string 文件的应用沙箱路径或URI。
callback AsyncCallback 异步打开文件之后的回调。

错误码:

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

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let filePath = pathDir + "/test.txt";
fs.open(filePath, (err: BusinessError, file: fs.File) => {
  if (err) {
    console.error("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打开文件。

原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。

参数:

参数名 类型 必填 说明
path string 打开文件的应用沙箱路径或URI,使用URI作为入参时,仅支持打开文件,不支持创建。
mode number 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开: - OpenMode.READ_ONLY(0o0):只读打开。 - OpenMode.WRITE_ONLY(0o1):只写打开。 - OpenMode.READ_WRITE(0o2):读写打开。 给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项: - OpenMode.CREATE(0o100):若文件不存在,则创建文件。(path为URI时不支持创建文件) - 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);
收藏00

登录 后评论。没有帐号? 注册 一个。