打开文件
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