Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
1fa229a6
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
You need to sign in or sign up before continuing.
提交
1fa229a6
编写于
8月 13, 2021
作者:
M
maokelong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Upload docs for file management/storage apis
Signed-off-by:
N
maokelong
<
chenjinglong1@huawei.com
>
上级
46134eb9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
1637 addition
and
1 deletion
+1637
-1
zh-cn/application-dev/js-reference/Readme-CN.md
zh-cn/application-dev/js-reference/Readme-CN.md
+2
-1
zh-cn/application-dev/js-reference/文件存储.md
zh-cn/application-dev/js-reference/文件存储.md
+579
-0
zh-cn/application-dev/js-reference/文件管理.md
zh-cn/application-dev/js-reference/文件管理.md
+1056
-0
未找到文件。
zh-cn/application-dev/js-reference/Readme-CN.md
浏览文件 @
1fa229a6
...
@@ -105,4 +105,5 @@
...
@@ -105,4 +105,5 @@
-
[
国际化
](
国际化.md
)
-
[
国际化
](
国际化.md
)
-
[
资源管理
](
资源管理.md
)
-
[
资源管理
](
资源管理.md
)
-
[
升级
](
升级.md
)
-
[
升级
](
升级.md
)
-
[
文件管理
](
文件管理.md
)
-
[
文件存储
](
文件存储.md
)
\ No newline at end of file
zh-cn/application-dev/js-reference/文件存储.md
0 → 100644
浏览文件 @
1fa229a6
# 文件存储
更新时间: 2021-07-09 15:29
说明
从API Version 6开始,该接口不再维护,推荐使用
[
文件管理接口(@ohos.fileio)
](
文件管理.md
)
进行文件存储管理。
涉及到文件目录的请参考下述表格:
<a
name=
"table947391523311"
></a>
<table><thead
align=
"left"
><tr
id=
"row84733151332"
><th
class=
"cellrowborder"
valign=
"top"
width=
"13.969999999999999%"
id=
"mcps1.2.5.1.1"
><p
id=
"p32271219113313"
><a
name=
"p32271219113313"
></a><a
name=
"p32271219113313"
></a>
目录类型
</p>
</th>
<th
class=
"cellrowborder"
valign=
"top"
width=
"16.41%"
id=
"mcps1.2.5.1.2"
><p
id=
"p3227191993310"
><a
name=
"p3227191993310"
></a><a
name=
"p3227191993310"
></a>
路径前缀
</p>
</th>
<th
class=
"cellrowborder"
valign=
"top"
width=
"22%"
id=
"mcps1.2.5.1.3"
><p
id=
"p192277196333"
><a
name=
"p192277196333"
></a><a
name=
"p192277196333"
></a>
访问可见性
</p>
</th>
<th
class=
"cellrowborder"
valign=
"top"
width=
"47.620000000000005%"
id=
"mcps1.2.5.1.4"
><p
id=
"p18227719103313"
><a
name=
"p18227719103313"
></a><a
name=
"p18227719103313"
></a>
说明
</p>
</th>
</tr>
</thead>
<tbody><tr
id=
"row1474161514330"
><td
class=
"cellrowborder"
valign=
"top"
width=
"13.969999999999999%"
headers=
"mcps1.2.5.1.1 "
><p
id=
"p9896152614335"
><a
name=
"p9896152614335"
></a><a
name=
"p9896152614335"
></a>
临时目录
</p>
</td>
<td
class=
"cellrowborder"
valign=
"top"
width=
"16.41%"
headers=
"mcps1.2.5.1.2 "
><p
id=
"p389632610335"
><a
name=
"p389632610335"
></a><a
name=
"p389632610335"
></a>
internal://cache/
</p>
</td>
<td
class=
"cellrowborder"
valign=
"top"
width=
"22%"
headers=
"mcps1.2.5.1.3 "
><p
id=
"p989610267332"
><a
name=
"p989610267332"
></a><a
name=
"p989610267332"
></a>
仅本应用可见
</p>
</td>
<td
class=
"cellrowborder"
valign=
"top"
width=
"47.620000000000005%"
headers=
"mcps1.2.5.1.4 "
><p
id=
"p16896726173311"
><a
name=
"p16896726173311"
></a><a
name=
"p16896726173311"
></a>
可读写,随时可能清除,不保证持久性。一般用作下载临时目录或缓存目录。
</p>
</td>
</tr>
<tr
id=
"row194741315193312"
><td
class=
"cellrowborder"
valign=
"top"
width=
"13.969999999999999%"
headers=
"mcps1.2.5.1.1 "
><p
id=
"p12896142620339"
><a
name=
"p12896142620339"
></a><a
name=
"p12896142620339"
></a>
应用私有目录
</p>
</td>
<td
class=
"cellrowborder"
valign=
"top"
width=
"16.41%"
headers=
"mcps1.2.5.1.2 "
><p
id=
"p118969269332"
><a
name=
"p118969269332"
></a><a
name=
"p118969269332"
></a>
internal://app/
</p>
</td>
<td
class=
"cellrowborder"
valign=
"top"
width=
"22%"
headers=
"mcps1.2.5.1.3 "
><p
id=
"p189612263333"
><a
name=
"p189612263333"
></a><a
name=
"p189612263333"
></a>
仅本应用可见
</p>
</td>
<td
class=
"cellrowborder"
valign=
"top"
width=
"47.620000000000005%"
headers=
"mcps1.2.5.1.4 "
><p
id=
"p1089682623314"
><a
name=
"p1089682623314"
></a><a
name=
"p1089682623314"
></a>
随应用卸载删除。
</p>
</td>
</tbody>
</table>
## 支持设备
| API | 手机 | 平板 | 智慧屏 | 智能穿戴 |
| --------------------- | ---- | ---- | ------ | -------- |
| file.move | 支持 | 支持 | 支持 | 支持 |
| file.copy | 支持 | 支持 | 支持 | 支持 |
| file.list | 支持 | 支持 | 支持 | 支持 |
| file.get | 支持 | 支持 | 支持 | 支持 |
| file.delete | 支持 | 支持 | 支持 | 支持 |
| file.writeText | 支持 | 支持 | 支持 | 支持 |
| file.writeArrayBuffer | 支持 | 支持 | 支持 | 支持 |
| file.readText | 支持 | 支持 | 支持 | 支持 |
| file.readArrayBuffer | 支持 | 支持 | 支持 | 支持 |
| file.access | 支持 | 支持 | 支持 | 支持 |
| file.mkdir | 支持 | 支持 | 支持 | 支持 |
| file.rmdir | 支持 | 支持 | 支持 | 支持 |
说明
file.writeText、file.writeArrayBuffer、file.readText和file.readArrayBuffer仅支持文本文档读写。
## 导入模块
```
javascript
import
file
from
'
@system.file
'
;
```
## 权限列表
无
## file.move(OBJECT)
将指定文件移动到其他指定位置。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | ----------------------------------------------------- |
| srcUri | string | 是 | 要移动的文件的uri。 |
| dstUri | string | 是 | 文件要移动到的位置的uri。 |
| success | Function | 否 | 接口调用成功的回调函数,返回文件要移动到的位置的uri。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
move
({
srcUri
:
'
internal://app/myfiles1
'
,
dstUri
:
'
internal://app/myfiles2
'
,
success
:
function
(
uri
)
{
console
.
log
(
'
call success callback success
'
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.copy(OBJECT)
将指定文件拷贝并存储到指定位置,接口所使用的URI描述详见
[
文件组织
](
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396
)
。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | ------------------------------------------------------------ |
| srcUri | string | 是 | 要拷贝的文件的uri。 |
| dstUri | string | 是 | 文件要拷贝到的位置的uri。 不支持用应用资源路径或tmp类型的uri。 |
| success | Function | 否 | 接口调用成功的回调函数,返回文件要拷贝到的位置的uri。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
copy
({
srcUri
:
'
internal://app/file.txt
'
,
dstUri
:
'
internal://app/file_copy.txt
'
,
success
:
function
(
uri
)
{
console
.
log
(
'
call success callback success
'
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.list(OBJECT)
获取指定路径下全部文件的列表,接口所使用的 URI 描述详见
[
文件组织
](
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396
)
。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | ------------------------ |
| uri | string | 是 | 目录uri。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
success返回值:
| 参数名 | 类型 | 说明 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| fileList | Array
<
[
FileInfo
](
https:
//
developer.harmonyos.com
/
cn
/
docs
/
documentation
/
doc-references
/
js-apis-file-storage-0000000000629445#ZH-CN_TOPIC_0000001102026082__table156231426174610
)
>
| 获取的文件列表,其中每个文件的信息的格式为:
**{**
**uri:'file1',**
**lastModifiedTime:1589965924479,**
**length:10240,**
**type: 'file'**
**}**
|
| 参数名 | 类型 | 说明 |
| ---------------- | ------ | ------------------------------------------------------------ |
| uri | string | 文件的 uri。 |
| lastModifiedTime | number | 文件上一次保存时的时间戳,显示从1970/01/01 00:00:00 GMT到当前时间的毫秒数。 |
| length | number | 文件的大小,单位为字节。 |
| type | string | 文件的类型,可选值为: dir:目录;file:文件。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
list
({
uri
:
'
internal://app/pic
'
,
success
:
function
(
data
)
{
console
.
log
(
data
.
fileList
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.get(OBJECT)
获取指定本地文件的信息,URI请参考
[
文件组织
](
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396
)
。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| --------- | -------- | ---- | --------------------------------------------- |
| uri | string | 是 | 文件的uri。 |
| recursive | boolean | 否 | 是否进行递归获取子目录文件列表,缺省为false。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
success返回值:
| 参数名 | 类型 | 说明 |
| ---------------- | ------ | ------------------------------------------------------------ |
| uri | string | 文件的uri。 |
| length | number | 文件字节长。 |
| lastModifiedTime | number | 文件保存时的时间戳,从1970/01/01 00:00:00到当前时间的毫秒数。 |
| type | string | 文件类型,可选值为: dir:目录;file:文件。 |
| subFiles | Array | 文件列表。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
get
({
uri
:
'
internal://app/file
'
,
success
:
function
(
data
)
{
console
.
log
(
data
.
uri
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.delete(OBJECT)
删除本地文件,使用的URI参考
[
文件组织
](
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396
)
。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | ----------------------------------- |
| uri | string | 是 | 删除文件的uri,不能是应用资源路径。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 参数错误。 |
| 300 | I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
delete
({
uri
:
'
internal://app/my_file
'
,
success
:
function
()
{
console
.
log
(
'
call delete success.
'
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.writeText(OBJECT)
写文本内容到指定文件。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | --------------------------------------- |
| uri | string | 是 | 本地文件uri,如果文件不存在会创建文件。 |
| text | string | 是 | 写入的字符串。 |
| encoding | string | 否 | 编码格式,默认为UTF-8。 |
| append | boolean | 否 | 是否追加模式,默认为false。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 参数错误。 |
| 300 | I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
writeText
({
uri
:
'
internal://app/workspace/test.txt
'
,
text
:
'
Text that just for test.
'
,
success
:
function
()
{
console
.
log
(
'
call writeText success.
'
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.writeArrayBuffer(OBJECT)
写Buffer内容到指定文件。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------- | ---- | ------------------------------------------------------------ |
| uri | string | 是 | 本地文件uri,如果文件不存在会创建文件。 |
| buffer | Uint8Array | 是 | 写入的Buffer。 |
| position | number | 否 | 文件开始写入数据的位置的偏移量,默认为0。 |
| append | boolean | 否 | 是否追加模式,默认为false。当设置为true时,position参数无效。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
writeArrayBuffer
({
uri
:
'
internal://app/workspace/test
'
,
buffer
:
buffer
,
//buffer为Uint8Array类型
success
:
function
()
{
console
.
log
(
'
call writeArrayBuffer success.
'
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.readText(OBJECT)
从指定文件中读取文本内容。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | ------------------------ |
| uri | string | 是 | 本地文件uri。 |
| encoding | string | 否 | 编码格式,缺省为UTF-8。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
success返回值:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ------------------ |
| text | string | 读取到的文本内容。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
readText
({
uri
:
'
internal://app/workspace/text.txt
'
,
success
:
function
(
data
)
{
console
.
log
(
'
call readText success:
'
+
data
.
text
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.readArrayBuffer(OBJECT)
从指定文件中读取Buffer内容。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | -------------------------------------- |
| uri | string | 是 | 本地文件uri。 |
| position | number | 否 | 读取的起始位置,缺省为文件的起始位置。 |
| length | number | 否 | 需要读取的长度,缺省则读取到文件结尾。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
success返回值:
| 参数名 | 类型 | 说明 |
| ------ | ---------- | ------------------ |
| buffer | Uint8Array | 读取到的文件内容。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
readArrayBuffer
({
uri
:
'
internal://app/workspace/test
'
,
position
:
10
,
length
:
200
,
success
:
function
(
data
)
{
console
.
log
(
'
call readArrayBuffer success:
'
+
data
.
buffer
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.access(OBJECT)
判断指定文件或目录是否存在。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | ------------------------ |
| uri | string | 是 | 目录或文件uri。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O 错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
access
({
uri
:
'
internal://app/test
'
,
success
:
function
()
{
console
.
log
(
'
call access success.
'
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.mkdir(OBJECT)
创建指定目录。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| --------- | -------- | ---- | ------------------------------------------- |
| uri | string | 是 | 目录的uri路径。 |
| recursive | boolean | 否 | 是否递归创建该目录的上级目录,缺省为false。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | -------------- |
| 202 | 出现参数错误。 |
| 300 | 出现I/O 错误。 |
-
示例
```
javascript
file
.
mkdir
({
uri
:
'
internal://app/test_directory
'
,
success
:
function
()
{
console
.
log
(
'
call mkdir success.
'
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
## file.rmdir(OBJECT)
删除指定目录。
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| --------- | -------- | ---- | ----------------------------------------- |
| uri | string | 是 | 目录的uri路径。 |
| recursive | boolean | 否 | 是否递归删除子文件和子目录,缺省为false。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
fail返回错误代码:
| 错误码 | 说明 |
| ------ | ------------------ |
| 202 | 出现参数错误。 |
| 300 | 出现I/O 错误。 |
| 301 | 文件或目录不存在。 |
-
示例
```
javascript
file
.
rmdir
({
uri
:
'
internal://app/test_directory
'
,
success
:
function
()
{
console
.
log
(
'
call rmdir success.
'
);
},
fail
:
function
(
data
,
code
)
{
console
.
error
(
'
call fail callback fail, code:
'
+
code
+
'
, data:
'
+
data
);
},
});
```
zh-cn/application-dev/js-reference/文件管理.md
0 → 100644
浏览文件 @
1fa229a6
# 文件管理
## 支持设备
| 手机 | 平板 | 智慧屏 | 智能穿戴 |
| ---- | ------ | ------ | -------- |
| 支持 | 不支持 | 不支持 | 支持 |
## 导入模块
```
js
import
fileio
from
'
@ohos.fileio
'
```
## 权限列表
无
## openSync(path:string, flags?:number, mode?:number): number
同步地打开文件。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path | string | 是 | 待打开文件的绝对路径。 |
| flags | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:
<br>
0o0:只读打开。
<br/>
0o1:只写打开。
<br/>
0o2:读写打开。
<br/>
同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:
<br/>
0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数mode。
<br/>
0o200:如果追加了0o100 选项,且文件已经存在,则报错。
<br/>
0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。
<br/>
0o2000:以追加方式打开,后续写将追加到文件末尾。
<br/>
0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续IO进行非阻塞操作。
<br/>
0o200000:如果path指向目录,则报错。
<br/>
0o400000:如果path指向符号链接,则报错。
<br/>
0o4010000:以同步IO的方式打开文件。 |
| mode | number | 否 | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o666。
<br/>
0o666:所有者具有读、写及可执行权限,其余用户具有读、写及可执行权限。
<br/>
0o0700:所有者具有读、写及可执行权限。
<br/>
0o0400:所有者具有读权限。
<br/>
0o0200:所有者具有写权限。
<br/>
0o0100:所有者具有可执行权限。
<br/>
0o0070:所有用户组具有读、写及可执行权限。
<br/>
0o0040:所有用户组具有读权限。
<br/>
0o0020:所有用户组具有写权限。
<br/>
0o0010:所有用户组具有可执行权限。
<br/>
0o0007:其余用户具有读、写及可执行权限。
<br/>
0o0004:其余用户具有读权限。
<br/>
0o0002:其余用户具有写权限。
<br/>
0o0001 :其余用户具有可执行权限。 |
-
返回值:
| 类型 | 说明 |
| :----- | :--------------------- |
| number | 打开文件的文件描述符。 |
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
);
```
## accessSync(path: string, mode?: number): void
同步地检查当前进程是否可访问某文件。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path | string | 是 | 文件路径。 |
| mode | number | 否 | 查询文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。
<br>
确认当前进程是否具有对应权限:
<br>
0:确认文件是否存在。
<br>
1:确认当前进程是否具有可执行权限。
<br>
2:确认当前进程是否具有写权限。
<br>
4:确认当前进程是否具有读权限。 |
-
返回值:
无
-
示例:
```
js
fileio
.
accessSync
(
path
);
```
## chmodSync(path:string, mode:number):void
同步地修改文件权限。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path | string | 是 | 文件路径。 |
| mode | number | 是 | 文件的访问权限,可给定如下权限,以按位或的方式追加权限。只有该文件的所有者或有效用户识别码为0,才可以修改该文件的权限。
<br/>
0o4000:文件的 (set user-id on execution)位
<br/>
0o2000:文件的 (set group-id on execution)位
<br/>
0o1000:文件的sticky 位
<br/>
0o0700:所有者具有读、写及可执行权限。
<br/>
0o0400:所有者具有读权限。
<br/>
0o0200:所有者具有写权限。
<br/>
0o0100:所有者具有可执行权限。
<br/>
0o0070:所有用户组具有读、写及可执行权限。
<br/>
0o0040:所有用户组具有读权限。
<br/>
0o0020:所有用户组具有写权限。
<br/>
0o0010:所有用户组具有可执行权限。
<br/>
0o0007:其余用户具有读、写及可执行权限。
<br/>
0o0004:其余用户具有读权限。
<br/>
0o0002:其余用户具有写权限。
<br/>
0o0001 :其余用户具有可执行权限。 |
-
返回值:
无
-
示例:
```
js
fileio
.
chmodSync
(
path
,
0o660
);
```
## chownSync(path:string, owner:number, group:number):void
同步地修改文件的所有者和组。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------- |
| path | string | 是 | 待修改的文件路径。 |
| owner | number | 是 | 文件所有者的用户ID。 |
| group | number | 是 | 组ID。 |
-
返回值:
无
-
示例:
```
js
fileio
.
chownSync
(
path
,
UID
,
UID
);
```
## closeSync(fd: number): void
关闭文件描述符。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------ |
| fd | number | 是 | 文件描述符。 |
-
返回值:
无
-
示例:
```
js
fileio
.
closeSync
(
fd
);
```
## copyFileSync(src:string, dest:string, mode?:number): void
同步地复制文件。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| src | string | 是 | 待复制文件的路径。 |
| dest | string | 是 | 目标文件路径。 |
| mode | number | 否 | mode提供覆盖文件的选项,当前仅支持0,且默认为0。0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
-
返回值:
无
-
示例:
```
js
fileio
.
copyFileSync
(
src
,
dest
);
```
## fchmodSync(fd:number, mode:number):void
同步地更改文件描述符所指文件的权限。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| fd | number | 是 | 待修改权限的文件描述符 |
| mode | number | 是 | 文件的访问权限,可给定如下权限,以按位或的方式追加权限。只有该文件的所有者或有效用户识别码为0,才可以修改该文件的权限。
<br/>
0o4000:文件的 (set user-id on execution)位
<br/>
0o2000:文件的 (set group-id on execution)位
<br/>
0o1000:文件的sticky 位
<br/>
0o0700:所有者具有读、写及可执行权限。
<br/>
0o0400:所有者具有读权限。
<br/>
0o0200:所有者具有写权限。
<br/>
0o0100:所有者具有可执行权限。
<br/>
0o0070:所有用户组具有读、写及可执行权限。
<br/>
0o0040:所有用户组具有读权限。
<br/>
0o0020:所有用户组具有写权限。
<br/>
0o0010:所有用户组具有可执行权限。
<br/>
0o0007:其余用户具有读、写及可执行权限。
<br/>
0o0004:其余用户具有读权限。
<br/>
0o0002:其余用户具有写权限。
<br/>
0o0001 :其余用户具有可执行权限。 |
-
返回值:
无
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
,
0o2
);
fileio
.
fchmodSync
(
fd
,
0o660
);
```
## fchownSync(fd:number, owner:number, group:number):void
同步地更改已打开文件的所有者和组。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------ |
| fd | number | 是 | 要修改的文件描述符 |
| owner | number | 是 | 文件所有者的用户ID |
| group | number | 是 | 组ID |
-
返回值:
无
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
,
0o2
);
fileio
.
fchownSync
(
fd
,
UID
,
UID
);
```
## fstatSync(fd:number):Stat
同步地获取已打开文件的信息。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| fd | number | 是 | 已打开文件的文件描述符 |
-
返回值:
| 类型 | 说明 |
| :--- | :------------------- |
| Stat | 表示文件的具体信息。 |
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
,
0o2
);
let
stat
=
fileio
.
fstatSync
(
fd
);
```
## ftruncateSync(fd:number, len?:number):void
同步地修改已打开文件的大小。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------------------------------------- |
| fd | number | 是 | 待修改的文件描述符 |
| len | number | 否 | 指定文件大小,缺省值0,原文件大小超过len部分会被删除 |
-
返回值:
无
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
,
0o2
);
fileio
.
ftruncateSync
(
fd
);
```
## mkdirSync(path: string, mode?: number): void
同步地创建目录。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path | string | 是 | 待创建目录的绝对路径。 |
| mode | number | 否 | 待创建目录的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o775。
<br>
0o775:所有者具有读、写及可执行权限,其余用户具有读、写及可执行权限。
<br/>
0o700:所有者具有读、写及可执行权限。
<br/>
0o400:所有者具有读权限。
<br/>
0o200:所有者具有写权限。
<br/>
0o100:所有者具有可执行权限。
<br/>
0o070:所有用户组具有读、写及可执行权限。
<br/>
0o040:所有用户组具有读权限。
<br/>
0o020:所有用户组具有写权限。
<br/>
0o010:所有用户组具有可执行权限。
<br/>
0o007:其余用户具有读、写及可执行权限。
<br/>
0o004:其余用户具有读权限。
<br/>
0o002:其余用户具有写权限。
<br/>
0o001:其余用户具有可执行权限。 |
-
返回值:
无
-
示例:
```
fileio.mkdirSync(path);
```
## readSync(fd: number, buffer: ArrayBuffer, options?: Object): number
同步地从文件读取数据。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------- | ---- | ------------------------------------------------------------ |
| fd | number | 是 | 待读取文件的文件描述符。 |
| buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
| options | Object | 否 | 支持如下选项:
<br>
offset,number 类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。
<br/>
length,number 类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。
<br/>
position,number 类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 |
-
返回值:
| 类型 | 说明 |
| :----- | :--------------- |
| number | 实际读取的长度。 |
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
,
0o2
);
let
buf
=
new
ArrayBuffer
(
4096
);
fileio
.
readSync
(
fd
,
buf
);
console
.
log
(
String
.
fromCharCode
.
apply
(
null
,
new
Uint8Array
(
buf
)));
```
## renameSync(path:string, pathTarget:string):void
同步地重命名文件。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------ | ---- | -------------------- |
| path | string | 是 | 待重命名的文件原路径 |
| pathTarget | string | 是 | 要重命名的文件路径 |
-
返回值:
无
-
示例:
```
js
fileio
.
renameSync
(
path
,
pathTarget
);
```
## rmdirSync(path:string):void
同步地删除目录。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| path | string | 是 | 待删除目录的绝对路径。 |
-
返回值:
无
-
示例:
```
js
fileio
.
rmdirSync
(
path
);
```
## unlinkSync(path: string): void
同步地删除文件。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| path | string | 是 | 待删除文件的绝对路径。 |
-
返回值:
无
-
示例:
```
fileio.unlinkSync(path);
```
## fsyncSync(fd:number):void
同步地将缓冲区数据写回磁盘进行数据同步。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| fd | number | 是 | 待同步数据的文件描述符 |
-
返回值:
无
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
,
0o2
);
fileio
.
fsyncSync
(
fd
);
```
## truncateSync(path:string, len?:number):void
同步地修改文件大小。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------------------------------------- |
| path | string | 是 | 待修改的文件路径 |
| len | number | 否 | 指定文件大小,缺省值0,原文件大小超过len部分会被删除 |
-
返回值:
无
-
示例:
```
js
fileio
.
truncateSync
(
path
);
```
## writeSync(fd: number, buffer: ArrayBuffer | string, options?:Object): number
同步地将数据写入文件。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------- | --------------------- | ---- | ------------------------------------------------------------ |
| fd | number | 是 | 待写入文件的文件描述符。 |
| buffer | ArrayBuffer
\|
string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
| options | Object | 否 | 支持如下选项:
<br/>
offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。
<br/>
length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。
<br/>
position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
<br/>
encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。 |
-
返回值:
| 类型 | 说明 |
| :----- | :--------------- |
| number | 实际写入的长度。 |
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
,
0o102
,
0o666
);
let
writeLen
=
fileio
.
writeSync
(
fd
,
'
hello, world
'
);
```
## Stat
文件具体信息,在调用Stat的方法前,需要先通过statSync(path:string)方法来构建一个Stat实例。
### 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ------- | -------- | ---- | ---- | ------------------------------------------------------------ |
| dev | number | 是 | 否 | 标识包含该文件的主设备号。 |
| ino | number | 是 | 否 | 标识该文件。通常同设备上的不同文件的INO不同。 |
| mode | number | 是 | 否 | 表示文件类型及权限,其首 4 位表示文件类型,后 12 位表示权限。各特征位的含义如下:
<br/>
0o170000:可用于获取文件类型的掩码
<br/>
0o140000:文件是套接字
<br/>
0o120000:文件是符号链接
<br/>
0o100000:文件是一般文件
<br/>
0o060000:文件属于块设备
<br/>
0o040000:文件是目录
<br/>
0o020000:文件是字符设备
<br/>
0o010000:文件是具名管道,即FIFO
<br/>
0o0700:可用于获取用户权限的掩码
<br/>
0o0400:用户读,对于普通文件,文件所有者可读取文件;对于目录,文件所有者可读取目录项
<br/>
0o0200:用户写,对于普通文件,文件所有者可写入文件;对于目录,文件所有者可创建/删除目录项
<br/>
0o0100:用户执行,对于普通文件,文件所有者可执行文件;对于目录,文件所有者可在目录中搜索给定路径名0o0070:可用于获取用户组权限的掩码
<br/>
0o0040:用户组读,对于普通文件,文件所有用户组可读取文件;对于目录,文件所有用户组可读取目录项
<br/>
0o0020:用户组写,对于普通文件,文件所有用户组可写入文件;对于目录,文件所有用户组可创建/删除目录项0o0010:用户组执行,对于普通文件,文件所有用户组可执行文件;对于目录,文件所有用户组是否可在目录中搜索给定路径名
<br/>
0o0007:可用于获取其他用户权限的掩码
<br/>
0o0004:其他读,对于普通文件,其他用户组可读取文件;对于目录,其他用户组可读取目录项
<br/>
0o0002:其他写,对于普通文件,其他用户组可写入文件;对于目录,其他用户组可创建/删除目录项
<br/>
0o0001:其他执行,对于普通文件,其他用户组可执行文件;对于目录,其他用户组可在目录中搜索给定路径名 |
| nlink | number | 是 | 否 | 文件的硬链接数。 |
| uid | number | 是 | 否 | 文件所有者的ID。 |
| gid | number | 是 | 否 | 文件所有组的ID。 |
| rdev | number | 是 | 否 | 标识包含该文件的从设备号。 |
| size | number | 是 | 否 | 文件的大小,以字节为单位。仅对普通文件有效。 |
| blksize | number | 是 | 否 | 包含该文件的磁盘块的大小 |
| blocks | number | 是 | 否 | 文件占用的块数,计算时块大小按512B计算。 |
| atime | number | 是 | 否 | 上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 |
| mtime | number | 是 | 否 | 上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 |
| ctime | number | 是 | 否 | 最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。 |
### statSync(path:string): Stat
同步地获取文件的信息。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------- |
| path | string | 是 | 文件路径。 |
-
返回值:
| 类型 | 说明 |
| :--- | :------------------- |
| Stat | 表示文件的具体信息。 |
-
示例:
```
js
let
stat
=
fileio
.
statSync
(
path
);
```
### isBlockDevice(): boolean
用于判断当前目录项是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :------------------------------- |
| boolean | 表示当前目录项是否是块特殊设备。 |
-
示例:
```
js
let
isBLockDevice
=
fileio
.
statSync
(
fpath
).
isBlockDevice
();
```
### isCharacterDevice(): boolean
用于判断当前目录项是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :--------------------------------- |
| boolean | 表示当前目录项是否是字符特殊设备。 |
-
示例:
```
js
let
isCharacterDevice
=
fileio
.
statSync
(
fpath
).
isCharacterDevice
();
```
### isDirectory(): boolean
用于判断当前目录项是否是目录。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :------------------------- |
| boolean | 表示当前目录项是否是目录。 |
-
示例:
```
js
let
isDirectory
=
fileio
.
statSync
(
fpath
).
isDirectory
();
```
### isFIFO(): boolean
用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :-------------------------- |
| boolean | 表示当前目录项是否是 FIFO。 |
-
示例:
```
js
let
isFIFO
=
fileio
.
statSync
(
fpath
).
isFIFO
();
```
### isFile(): boolean
用于判断当前目录项是否是普通文件。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :----------------------------- |
| boolean | 表示当前目录项是否是普通文件。 |
-
示例:
```
js
let
isFile
=
fileio
.
statSync
(
fpath
).
isFile
();
```
### isSocket(): boolean
用于判断当前目录项是否是套接字。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :--------------------------- |
| boolean | 表示当前目录项是否是套接字。 |
-
示例:
```
js
let
isSocket
=
fileio
.
statSync
(
fpath
).
isSocket
();
```
### isSymbolicLink(): boolean
用于判断当前目录项是否是符号链接。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :----------------------------- |
| boolean | 表示当前目录项是否是符号链接。 |
-
示例:
```
js
let
isSymbolicLink
=
fileio
.
statSync
(
fpath
).
isSymbolicLink
();
```
## Dir
管理目录,在调用Dir的方法前,需要先通过opendirSync(path: string)方法来构建一个Dir实例。
### opendirSync(path: string): Dir
同步地打开文件目录。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------- |
| path | string | 是 | 目录名称。 |
-
返回值:
| 类型 | 说明 |
| :--- | :------------ |
| Dir | 返回Dir对象。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
path
);
```
### readSync(): Dirent
同步读取下一个目录项。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :----------------------------------------------------------- | :--------------- |
|
[
Dirent
](
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001169469727#section92331215118
)
| 表示一个目录项。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
let
dirent
=
dir
.
readSync
();
console
.
log
(
dirent
.
name
);
```
### closeSync(): void
用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
-
参数:
无
-
返回值:
无
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
dir
.
closeSync
();
```
## Dirent
在调用Dirent的方法前,需要先通过dir.readSync()方法来构建一个Dirent实例。
### 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ---- | -------- | ---- | ---- | -------------- |
| name | string | 是 | 否 | 目录项的名称。 |
### isBlockDevice(): boolean
用于判断当前目录项是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :------------------------------- |
| boolean | 表示当前目录项是否是块特殊设备。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
let
isBLockDevice
=
dir
.
readSync
().
isBlockDevice
();
```
### isCharacterDevice(): boolean
用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :--------------------------------- |
| boolean | 表示当前目录项是否是字符特殊设备。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
let
isCharacterDevice
=
dir
.
readSync
().
isCharacterDevice
();
```
### isDirectory(): boolean
用于判断当前目录项是否是目录。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :------------------------- |
| boolean | 表示当前目录项是否是目录。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
let
isDirectory
=
dir
.
readSync
().
isDirectory
();
```
### isFIFO(): boolean
用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :------------------------- |
| boolean | 表示当前目录项是否是FIFO。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
let
isFIFO
=
dir
.
readSync
().
isFIFO
();
```
### isFile(): boolean
用于判断当前目录项是否是普通文件。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :----------------------------- |
| boolean | 表示当前目录项是否是普通文件。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
let
isFile
=
dir
.
readSync
().
isFile
();
```
### isSocket(): boolean
用于判断当前目录项是否是套接字。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :--------------------------- |
| boolean | 表示当前目录项是否是套接字。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
let
isSocket
=
dir
.
readSync
().
isSocket
();
```
### isSymbolicLink(): boolean
用于判断当前目录项是否是符号链接。
-
参数:
无
-
返回值:
| 类型 | 说明 |
| :------ | :----------------------------- |
| boolean | 表示当前目录项是否是符号链接。 |
-
示例:
```
js
let
dir
=
fileio
.
opendirSync
(
dpath
);
let
isSymbolicLink
=
dir
.
readSync
().
isSymbolicLink
();
```
## Stream
### createStreamSync(path:string, mode:string): Stream
同步地获取文件流。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path | string | 是 | 文件路径。 |
| mode | string | 是 | 文件访问模式,以文本方式打开文件可给定如下选项,如果要以二进制形式打开,需要在模式字符串的末尾或两个字符中间加上“b”。
<br/>
r: 打开只读文件;文件必须存在。
<br/>
w: 打开只写空文件;若文件已存在则舍弃原有文件内容,否则建立该文件。
<br/>
a: 打开只写文件;若文件不存在,创建新文件,否则在文件末尾追加数据。
<br/>
r+: 打开可读写文件;文件必须存在。
<br/>
w+: 打开可读写空文件;若文件已存在则舍弃原有文件内容,否则建立该文件。
<br/>
a+: 打开可读写文件;若文件不存在,创建新文件,否则在文件末尾追加数据。 |
-
返回值:
| 类型 | 说明 |
| :----- | :----------- |
| Stream | 表示文件流。 |
-
示例:
```
js
let
ss
=
fileio
.
createStreamSync
(
path
,
"
r+
"
);
```
### fdopenStreamSync(fd:number, mode:string):Stream
同步地将文件描述符转为文件流。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| fd | number | 是 | 已打开文件的文件描述符。 |
| mode | string | 是 | 文件访问模式,以文本方式打开文件可给定如下选项,如果要以二进制形式打开,需要在模式字符串的末尾或两个字符中间加上“b”。
<br/>
r: 打开只读文件;文件必须存在。
<br/>
w: 打开只写空文件;若文件已存在则舍弃原有文件内容,否则建立该文件。
<br/>
a: 打开只写文件;若文件不存在,创建新文件,否则在文件末尾追加数据。
<br/>
r+: 打开可读写文件;文件必须存在。
<br/>
w+: 打开可读写空文件;若文件已存在则舍弃原有文件内容,否则建立该文件。
<br/>
a+: 打开可读写文件;若文件不存在,创建新文件,否则在文件末尾追加数据。 |
-
返回值:
| 类型 | 说明 |
| :----- | :----------- |
| Stream | 表示文件流。 |
-
示例:
```
js
let
fd
=
fileio
.
openSync
(
path
,
0o2
);
let
ss
=
fileio
.
fdopenStreamSync
(
fd
,
"
r+
"
);
```
### writeSync(buffer: ArrayBuffer | string, options?:Object):number
同步地向文件流写入数据。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------- | -------------------- | ---- | ------------------------------------------------------------ |
| buffer | ArrayBuffer
\|
string | 是 | 待写入的数据,可来自缓冲区或字符串。 |
| options | object | 否 | 支持如下选项:
<br/>
offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。
<br/>
length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。
<br/>
position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
<br/>
encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。 |
-
返回值:
| 类型 | 说明 |
| :----- | :--------------- |
| number | 实际写入的长度。 |
-
示例:
```
js
let
ss
=
fileio
.
createStreamSync
(
path
,
"
r+
"
);
let
writeLen
=
ss
.
writeSync
(
'
hello, world
'
);
```
### flushSync():void
同步地刷新文件流的输出缓冲区。
-
参数:
无
-
返回值:
无
-
示例:
```
js
let
ss
=
fileio
.
createStreamSync
(
path
,
"
r+
"
);
let
writeLen
=
ss
.
writeSync
(
'
hello, world
'
);
ss
.
flushSync
();
```
### readSync(buffer: ArrayBuffer, options?:Object):number
同步地从文件流读取数据。
-
参数:
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------- | ---- | ------------------------------------------------------------ |
| buffer | ArrayBuffer | 是 | 用于读取数据的缓冲区。 |
| options | Object | 否 | 支持如下选项:
<br/>
offset,number 类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。
<br/>
length,number 类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。
<br/>
position,number 类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 |
-
返回值:
| 类型 | 说明 |
| :----- | :--------------- |
| number | 实际读取的长度。 |
-
示例:
```
js
let
ss
=
fileio
.
createStreamSync
(
path
,
"
r+
"
);
let
buf
=
new
ArrayBuffer
(
4096
);
let
readLen
=
fileio
.
readSync
(
buf
);
console
.
log
(
String
.
fromCharCode
.
apply
(
null
,
new
Uint8Array
(
buf
)));
```
### closeSync():void
同步地关闭文件流。
-
参数:
无
-
返回值:
无
-
示例:
```
js
let
ss
=
fileio
.
createStreamSync
(
path
,
"
r+
"
);
ss
.
closeSync
();
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录