js-apis-fileio.md 124.5 KB
Newer Older
T
explain  
tianyu 已提交
1
# 文件管理
Z
zengyawen 已提交
2

H
haonan_7 已提交
3 4
该模块提供文件存储管理能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。

Z
zengyawen 已提交
5 6
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
7

Z
zhangxingxia 已提交
8

Z
zengyawen 已提交
9
## 导入模块
Z
zengyawen 已提交
10

Z
zhangxingxia 已提交
11
```js
Z
zengyawen 已提交
12 13 14
import fileio from '@ohos.fileio';
```

Z
zengyawen 已提交
15 16

## 使用说明
Z
zengyawen 已提交
17

W
wangbo 已提交
18
使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:
19

W
wangbo 已提交
20 21 22
 ```js
 import featureAbility from '@ohos.ability.featureAbility';
 let context = featureAbility.getContext();
W
wangbo 已提交
23 24 25 26
 let path = '';
 context.getFilesDir().then((data) => {
      path = data;
 })
Z
zhangxingxia 已提交
27
 ```
Z
zengyawen 已提交
28 29


Z
zengyawen 已提交
30 31 32 33
## fileio.stat

stat(path: string): Promise<Stat>

H
haonan_7 已提交
34
获取文件信息,使用Promise异步回调。
Z
zengyawen 已提交
35

36 37
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
38
**参数:**
Z
zhangxingxia 已提交
39

Z
zengyawen 已提交
40 41 42
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待获取文件的应用沙箱路径。 |
Z
zhangxingxia 已提交
43

Z
zhangxingxia 已提交
44
**返回值:**
Z
zhangxingxia 已提交
45

H
haonan_7 已提交
46 47 48
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
  | Promise<[Stat](#stat)> | Promise对象。返回文件的具体信息。 |
Z
zhangxingxia 已提交
49

Z
zhangxingxia 已提交
50
**示例:**
H
haonan_7 已提交
51

Z
zhangxingxia 已提交
52 53
  ```js
  fileio.stat(path).then(function(stat){
H
haonan_7 已提交
54
      console.info("getFileInfo succeed:"+ JSON.stringify(stat));
Z
zhangxingxia 已提交
55 56 57
  }).catch(function(err){
      console.info("getFileInfo failed with error:"+ err);
  });
Z
zengyawen 已提交
58 59 60 61 62 63 64
  ```


## fileio.stat

stat(path:string, callback:AsyncCallback<Stat>): void

H
haonan_7 已提交
65
获取文件信息,使用callback异步回调。
Z
zengyawen 已提交
66

67 68
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
69
**参数:**
H
haonan_7 已提交
70

Z
zengyawen 已提交
71 72 73 74
| 参数名   | 类型                               | 必填 | 说明                           |
| -------- | ---------------------------------- | ---- | ------------------------------ |
| path     | string                             | 是   | 待获取文件的应用沙箱路径。     |
| callback | AsyncCallback<[Stat](#stat)> | 是   | 异步获取文件的信息之后的回调。 |
Z
zengyawen 已提交
75

Z
zhangxingxia 已提交
76
**示例:**
H
haonan_7 已提交
77

Z
zhangxingxia 已提交
78
  ```js
Z
zengyawen 已提交
79
  fileio.stat(path, function (err, stat) {
Z
zhangxingxia 已提交
80
      // example code in Stat
Z
zengyawen 已提交
81 82 83 84
  });
  ```


Z
zengyawen 已提交
85 86 87
## fileio.statSync

statSync(path:string): Stat
Z
zengyawen 已提交
88 89 90

以同步方法获取文件的信息。

91 92
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
93
**参数:**
H
haonan_7 已提交
94

Z
zengyawen 已提交
95 96 97
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待获取文件的应用沙箱路径。 |
Z
zengyawen 已提交
98 99


Z
zhangxingxia 已提交
100
**返回值:**
H
haonan_7 已提交
101 102 103 104

  | 类型            | 说明         |
  | ------------- | ---------- |
  | [Stat](#stat) | 表示文件的具体信息。 |
Z
zengyawen 已提交
105

Z
zhangxingxia 已提交
106
**示例:**
H
haonan_7 已提交
107

Z
zhangxingxia 已提交
108
  ```js
Z
zengyawen 已提交
109
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
110
  // example code in Stat
Z
zengyawen 已提交
111 112 113
  ```


Z
zengyawen 已提交
114
## fileio.opendir
Z
zengyawen 已提交
115

Z
zengyawen 已提交
116
opendir(path: string): Promise<Dir>
Z
zengyawen 已提交
117

H
haonan_7 已提交
118
打开文件目录,使用Promise异步回调。
Z
zengyawen 已提交
119

120 121
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
122
**参数:**
H
haonan_7 已提交
123

Z
zengyawen 已提交
124 125 126
| 参数名 | 类型   | 必填 | 说明                           |
| ------ | ------ | ---- | ------------------------------ |
| path   | string | 是   | 待打开文件目录的应用沙箱路径。 |
Z
zengyawen 已提交
127

Z
zhangxingxia 已提交
128
**返回值:**
H
haonan_7 已提交
129 130 131 132

  | 类型                         | 说明       |
  | -------------------------- | -------- |
  | Promise<[Dir](#dir)> | Promise对象。返回Dir对象。 |
Z
zengyawen 已提交
133

Z
zhangxingxia 已提交
134
**示例:**
H
haonan_7 已提交
135

Z
zhangxingxia 已提交
136 137
  ```js
  fileio.opendir(path).then(function(dir){
H
haonan_7 已提交
138
      console.info("opendir succeed:"+ JSON.stringify(dir));
Z
zhangxingxia 已提交
139 140 141
  }).catch(function(err){
      console.info("opendir failed with error:"+ err);
  });
Z
zengyawen 已提交
142 143 144
  ```


Z
zengyawen 已提交
145
## fileio.opendir
Z
zengyawen 已提交
146

Z
zengyawen 已提交
147
opendir(path: string, callback: AsyncCallback<Dir>): void
Z
zengyawen 已提交
148

H
haonan_7 已提交
149
打开文件目录,使用callback异步回调。
Z
zengyawen 已提交
150

151 152
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
153
**参数:**
Z
zhangxingxia 已提交
154

Z
zengyawen 已提交
155 156 157 158
| 参数名   | 类型                             | 必填 | 说明                           |
| -------- | -------------------------------- | ---- | ------------------------------ |
| path     | string                           | 是   | 待打开文件目录的应用沙箱路径。 |
| callback | AsyncCallback<[Dir](#dir)> | 是   | 异步打开文件目录之后的回调。   |
Z
zhangxingxia 已提交
159

Z
zhangxingxia 已提交
160
**示例:**
H
haonan_7 已提交
161

Z
zhangxingxia 已提交
162
  ```js
Z
zengyawen 已提交
163
  fileio.opendir(path, function (err, dir) { 
Z
zhangxingxia 已提交
164 165
      // example code in Dir struct
      // use read/readSync/close
Z
zengyawen 已提交
166
  });
Z
zengyawen 已提交
167 168 169
  ```


Z
zengyawen 已提交
170
## fileio.opendirSync
Z
zengyawen 已提交
171

Z
zengyawen 已提交
172 173 174
opendirSync(path: string): Dir

以同步方法打开文件目录。
Z
zengyawen 已提交
175

176 177
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zengyawen 已提交
178

Z
zhangxingxia 已提交
179
**参数:**
Z
zhangxingxia 已提交
180

Z
zengyawen 已提交
181 182 183
| 参数名 | 类型   | 必填 | 说明                           |
| ------ | ------ | ---- | ------------------------------ |
| path   | string | 是   | 待打开文件目录的应用沙箱路径。 |
Z
zhangxingxia 已提交
184

Z
zhangxingxia 已提交
185
**返回值:**
H
haonan_7 已提交
186 187 188 189

  | 类型          | 说明       |
  | ----------- | -------- |
  | [Dir](#dir) | 返回Dir对象。 |
Z
zengyawen 已提交
190

Z
zhangxingxia 已提交
191
**示例:**
H
haonan_7 已提交
192

Z
zhangxingxia 已提交
193
  ```js
Z
zengyawen 已提交
194 195 196
  let dir = fileio.opendirSync(path);
  // example code in Dir struct
  // use read/readSync/close
Z
zengyawen 已提交
197 198 199
  ```


Z
zengyawen 已提交
200
## fileio.access
Z
zengyawen 已提交
201

Z
zengyawen 已提交
202
access(path: string, mode?: number): Promise<void>
Z
zengyawen 已提交
203

H
haonan_7 已提交
204
检查当前进程是否可访问某文件,使用Promise异步回调。
Z
zengyawen 已提交
205

206 207
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
208
**参数:**
Z
zhangxingxia 已提交
209

Z
zengyawen 已提交
210 211 212 213
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待访问文件的应用沙箱路径。                                   |
| mode   | number | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
Z
zhangxingxia 已提交
214

Z
zhangxingxia 已提交
215
**返回值:**
H
haonan_7 已提交
216 217 218 219

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
220

Z
zhangxingxia 已提交
221
**示例:**
H
haonan_7 已提交
222

Z
zhangxingxia 已提交
223 224
  ```js
  fileio.access(path).then(function() {
H
haonan_7 已提交
225
      console.info("access succeed");
Z
zhangxingxia 已提交
226 227
  }).catch(function(err){
      console.info("access failed with error:"+ err);
Z
zengyawen 已提交
228
  });
Z
zengyawen 已提交
229 230 231
  ```


Z
zengyawen 已提交
232
## fileio.access
Z
zengyawen 已提交
233

234
access(path: string, mode: number, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
235

H
haonan_7 已提交
236
检查当前进程是否可访问某文件,使用callback异步回调。
Z
zengyawen 已提交
237

238 239
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
240
**参数:**
H
haonan_7 已提交
241

Z
zengyawen 已提交
242 243 244 245 246
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                    | 是   | 待访问文件的应用沙箱路径。                                   |
| mode     | number                    | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步检查当前进程是否可访问某文件之后的回调。                 |
Z
zengyawen 已提交
247

Z
zhangxingxia 已提交
248
**示例:**
H
haonan_7 已提交
249

Z
zhangxingxia 已提交
250
  ```js
Z
zengyawen 已提交
251
  fileio.access(path, function (err) {
Z
zhangxingxia 已提交
252
      // do something
Z
zengyawen 已提交
253
  });
Z
zengyawen 已提交
254 255 256
  ```


Z
zengyawen 已提交
257
## fileio.accessSync
Z
zengyawen 已提交
258

Z
zengyawen 已提交
259 260 261
accessSync(path: string, mode?: number): void

以同步方法检查当前进程是否可访问某文件。
Z
zengyawen 已提交
262

263
**系统能力**:SystemCapability.FileManagement.File.FileIO
Z
zengyawen 已提交
264

Z
zhangxingxia 已提交
265
**参数:**
H
haonan_7 已提交
266

Z
zengyawen 已提交
267 268 269 270
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待访问文件的应用沙箱路径。                                   |
| mode   | number | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
Z
zengyawen 已提交
271

Z
zhangxingxia 已提交
272
**示例:**
H
haonan_7 已提交
273

Z
zhangxingxia 已提交
274
  ```js
Z
zengyawen 已提交
275 276
  try {
      fileio.accessSync(path);
Z
zhangxingxia 已提交
277 278
  } catch(err) {
      console.info("accessSync failed with error:"+ err);
Z
zengyawen 已提交
279
  }
Z
zengyawen 已提交
280 281 282
  ```


Z
zengyawen 已提交
283
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
284

Z
zengyawen 已提交
285
close(fd: number):Promise&lt;void&gt;
Z
zengyawen 已提交
286

H
haonan_7 已提交
287
关闭文件,使用Promise异步回调。
Z
zengyawen 已提交
288

289 290
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
291
**参数:**
H
haonan_7 已提交
292 293 294 295

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待关闭文件的文件描述符。 |
Z
zengyawen 已提交
296

Z
zhangxingxia 已提交
297
**返回值:**
H
haonan_7 已提交
298 299 300 301

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
302

Z
zhangxingxia 已提交
303
**示例:**
H
haonan_7 已提交
304

Z
zhangxingxia 已提交
305
  ```js
Z
zengyawen 已提交
306
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
307
  fileio.close(fd).then(function(){
H
haonan_7 已提交
308
      console.info("close file succeed");
Z
zhangxingxia 已提交
309 310 311
  }).catch(function(err){
      console.info("close file failed with error:"+ err);
  });
Z
zengyawen 已提交
312 313 314
  ```


Z
zengyawen 已提交
315
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
316

Z
zengyawen 已提交
317
close(fd: number, callback:AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
318

H
haonan_7 已提交
319
关闭文件,使用callback异步回调。
Z
zengyawen 已提交
320

321 322
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
323
**参数:**
H
haonan_7 已提交
324 325 326 327 328

  | 参数名      | 类型                        | 必填   | 说明           |
  | -------- | ------------------------- | ---- | ------------ |
  | fd       | number                    | 是    | 待关闭文件的文件描述符。 |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件之后的回调。 |
Z
zengyawen 已提交
329

Z
zhangxingxia 已提交
330
**示例:**
H
haonan_7 已提交
331

Z
zhangxingxia 已提交
332
  ```js
Z
zengyawen 已提交
333
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
334 335
  fileio.close(fd, function (err) {
      // do something
Z
zengyawen 已提交
336
  });
Z
zengyawen 已提交
337 338 339
  ```


Z
zengyawen 已提交
340
## fileio.closeSync
Z
zengyawen 已提交
341

Z
zengyawen 已提交
342
closeSync(fd: number): void
Z
zengyawen 已提交
343

Z
zengyawen 已提交
344
以同步方法关闭文件。
Z
zengyawen 已提交
345

346 347
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
348
**参数:**
H
haonan_7 已提交
349 350 351 352

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待关闭文件的文件描述符。 |
Z
zengyawen 已提交
353

Z
zhangxingxia 已提交
354
**示例:**
H
haonan_7 已提交
355

Z
zhangxingxia 已提交
356
  ```js
357
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
358
  fileio.closeSync(fd);
Z
zengyawen 已提交
359 360 361
  ```


Z
zengyawen 已提交
362
## fileio.copyFile
Z
zengyawen 已提交
363

Z
zengyawen 已提交
364
copyFile(src:string | number, dest:string | number, mode?:number):Promise&lt;void&gt;
Z
zengyawen 已提交
365

H
haonan_7 已提交
366
复制文件,使用Promise异步回调。
Z
zengyawen 已提交
367

368 369
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
370
**参数:**
H
haonan_7 已提交
371 372 373 374 375 376

  | 参数名  | 类型                         | 必填   | 说明                                       |
  | ---- | -------------------------- | ---- | ---------------------------------------- |
  | src  | string&nbsp;\|&nbsp;number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
  | dest | string&nbsp;\|&nbsp;number | 是    | 目标文件路径或目标文件描述符。                          |
  | mode | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
Z
zengyawen 已提交
377

Z
zhangxingxia 已提交
378
**返回值:**
H
haonan_7 已提交
379 380 381 382

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
383

Z
zhangxingxia 已提交
384
**示例:**
H
haonan_7 已提交
385

Z
zhangxingxia 已提交
386
  ```js
387 388
  let src = path;
  let dest = src + 'tgt';
W
wangbo 已提交
389
  fileio.copyFile(src, dest).then(function(){
H
haonan_7 已提交
390
      console.info("copyFile succeed");
Z
zhangxingxia 已提交
391 392 393
  }).catch(function(err){
      console.info("copyFile failed with error:"+ err);
  });
Z
zengyawen 已提交
394 395 396
  ```


Z
zengyawen 已提交
397
## fileio.copyFile
Z
zengyawen 已提交
398

399
copyFile(src: string | number, dest: string | number, mode: number, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
400

H
haonan_7 已提交
401
复制文件,使用callback异步回调。
Z
zengyawen 已提交
402

403 404
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
405
**参数:**
H
haonan_7 已提交
406 407 408 409 410 411 412

  | 参数名      | 类型                         | 必填   | 说明                                       |
  | -------- | -------------------------- | ---- | ---------------------------------------- |
  | src      | string&nbsp;\|&nbsp;number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
  | dest     | string&nbsp;\|&nbsp;number | 是    | 目标文件路径或目标文件描述符。                          |
  | mode     | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
  | callback | AsyncCallback&lt;void&gt;  | 是    | 异步复制文件之后的回调。                             |
Z
zengyawen 已提交
413

Z
zhangxingxia 已提交
414
**示例:**
H
haonan_7 已提交
415

Z
zhangxingxia 已提交
416
  ```js
417 418
  let src = path;
  let dest = src + 'tgt';
W
wangbo 已提交
419
  fileio.copyFile(src, dest, function (err) {
Z
zhangxingxia 已提交
420
      // do something
Z
zengyawen 已提交
421
  });
Z
zengyawen 已提交
422 423 424
  ```


Z
zengyawen 已提交
425
## fileio.copyFileSync
Z
zengyawen 已提交
426

427
copyFileSync(src: string | number, dest: string | number, mode?: number): void
Z
zengyawen 已提交
428

Z
zengyawen 已提交
429
以同步方法复制文件。
Z
zengyawen 已提交
430

431 432
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
433
**参数:**
H
haonan_7 已提交
434 435 436 437 438 439

  | 参数名  | 类型                         | 必填   | 说明                                       |
  | ---- | -------------------------- | ---- | ---------------------------------------- |
  | src  | string&nbsp;\|&nbsp;number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
  | dest | string&nbsp;\|&nbsp;number | 是    | 目标文件路径或目标文件描述符。                          |
  | mode | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
Z
zengyawen 已提交
440

Z
zhangxingxia 已提交
441
**示例:**
H
haonan_7 已提交
442

Z
zhangxingxia 已提交
443
  ```js
444 445
  let src = path;
  let dest = src + 'tgt';
W
wangbo 已提交
446
  fileio.copyFileSync(src, dest);
Z
zengyawen 已提交
447 448 449
  ```


Z
zengyawen 已提交
450
## fileio.mkdir
Z
zengyawen 已提交
451

Z
zengyawen 已提交
452 453
mkdir(path:string, mode?: number): Promise&lt;void&gt;

H
haonan_7 已提交
454
创建目录,使用Promise异步回调。
Z
zengyawen 已提交
455

456
**系统能力**:SystemCapability.FileManagement.File.FileIO
Z
zengyawen 已提交
457

Z
zhangxingxia 已提交
458
**参数:**
H
haonan_7 已提交
459

Z
zengyawen 已提交
460 461 462 463
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待创建目录的应用沙箱路径。                                   |
| mode   | number | 否   | 创建目录的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o775。<br/>-&nbsp;0o775:所有者具有读、写及可执行权限,其余用户具有读及可执行权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
Z
zengyawen 已提交
464

Z
zhangxingxia 已提交
465
**返回值:**
H
haonan_7 已提交
466 467 468 469

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
470

Z
zhangxingxia 已提交
471
**示例:**
H
haonan_7 已提交
472

Z
zhangxingxia 已提交
473 474
  ```js
  fileio.mkdir(path).then(function() {
H
haonan_7 已提交
475
      console.info("mkdir succeed");
Z
zhangxingxia 已提交
476 477 478
  }).catch(function (error){
      console.info("mkdir failed with error:"+ error);
  });
Z
zengyawen 已提交
479 480 481
  ```


Z
zengyawen 已提交
482
## fileio.mkdir
Z
zengyawen 已提交
483

484
mkdir(path: string, mode: number, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
485

H
haonan_7 已提交
486
创建目录,使用callback异步回调。
Z
zengyawen 已提交
487

488 489
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
490
**参数:**
H
haonan_7 已提交
491

Z
zengyawen 已提交
492 493 494 495 496
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                    | 是   | 待创建目录的应用沙箱路径。                                   |
| mode     | number                    | 否   | 创建目录的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o775。<br/>-&nbsp;0o775:所有者具有读、写及可执行权限,其余用户具有读及可执行权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步创建目录操作完成之后的回调。                             |
Z
zengyawen 已提交
497

Z
zhangxingxia 已提交
498
**示例:**
H
haonan_7 已提交
499

Z
zhangxingxia 已提交
500 501
  ```js
  fileio.mkdir(path, function(err) {
H
haonan_7 已提交
502
    console.info("mkdir succeed");
Z
zengyawen 已提交
503
  });
Z
zengyawen 已提交
504 505 506
  ```


Z
zengyawen 已提交
507
## fileio.mkdirSync
Z
zengyawen 已提交
508

509
mkdirSync(path: string, mode?: number): void
Z
zengyawen 已提交
510

Z
zengyawen 已提交
511
以同步方法创建目录。
Z
zengyawen 已提交
512

513 514
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
515
**参数:**
H
haonan_7 已提交
516

Z
zengyawen 已提交
517 518 519 520
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待创建目录的应用沙箱路径。                                   |
| mode   | number | 否   | 创建目录的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o775。<br/>-&nbsp;0o775:所有者具有读、写及可执行权限,其余用户具有读及可执行权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
Z
zengyawen 已提交
521

Z
zhangxingxia 已提交
522
**示例:**
H
haonan_7 已提交
523

Z
zhangxingxia 已提交
524
  ```js
Z
zengyawen 已提交
525 526 527 528 529 530 531 532
  fileio.mkdirSync(path);
  ```


## fileio.open<sup>7+</sup>

open(path: string, flags?: number, mode?: number): Promise&lt;number&gt;

H
haonan_7 已提交
533
打开文件,使用Promise异步回调。
Z
zengyawen 已提交
534

535 536
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
537
**参数:**
H
haonan_7 已提交
538

Z
zengyawen 已提交
539 540 541
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
542
| flags  | number | 否   | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:<br/>-&nbsp;0o0:只读打开。<br/>-&nbsp;0o1:只写打开。<br/>-&nbsp;0o2:读写打开。<br/>同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:<br/>-&nbsp;0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数&nbsp;mode。<br/>-&nbsp;0o200:如果追加了0o100选项,且文件已经存在,则出错。<br/>-&nbsp;0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。<br/>-&nbsp;0o2000:以追加方式打开,后续写将追加到文件末尾。<br/>-&nbsp;0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续&nbsp;IO&nbsp;进行非阻塞操作。<br/>-&nbsp;0o200000:如果path不指向目录,则出错。<br/>-&nbsp;0o400000:如果path指向符号链接,则出错。<br/>-&nbsp;0o4010000:以同步IO的方式打开文件。 |
Z
zengyawen 已提交
543
| mode   | number | 否   | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o666。<br/>-&nbsp;0o666:所有者具有读、写权限,所有用户组具有读、写权限,其余用户具有读、写权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
Z
zengyawen 已提交
544

Z
zhangxingxia 已提交
545
**返回值:**
H
haonan_7 已提交
546 547 548 549

  | 类型                    | 说明          |
  | --------------------- | ----------- |
  | Promise&lt;number&gt; | Promise对象。返回打开文件的文件描述符。 |
Z
zengyawen 已提交
550

Z
zhangxingxia 已提交
551
**示例:**
H
haonan_7 已提交
552

Z
zhangxingxia 已提交
553 554
  ```js
  fileio.open(path, 0o1, 0o0200).then(function(number){
H
haonan_7 已提交
555
      console.info("open file succeed");
Z
zhangxingxia 已提交
556
  }).catch(function(err){
Z
zhangxingxia 已提交
557 558
      console.info("open file failed with error:"+ err);
  });
Z
zengyawen 已提交
559 560 561
  ```


Z
zengyawen 已提交
562
## fileio.open<sup>7+</sup>
Z
zengyawen 已提交
563

Z
zengyawen 已提交
564
open(path: string, flags: number, mode: number, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
565

H
haonan_7 已提交
566
打开文件,使用callback异步回调。
Z
zengyawen 已提交
567

568 569
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
570
**参数:**
H
haonan_7 已提交
571

Z
zengyawen 已提交
572 573 574
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                          | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
575
| flags    | number                          | 是   | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:<br/>-&nbsp;0o0:只读打开。<br/>-&nbsp;0o1:只写打开。<br/>-&nbsp;0o2:读写打开。<br/>同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:<br/>-&nbsp;0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数&nbsp;mode。<br/>-&nbsp;0o200:如果追加了0o100选项,且文件已经存在,则出错。<br/>-&nbsp;0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。<br/>-&nbsp;0o2000:以追加方式打开,后续写将追加到文件末尾。<br/>-&nbsp;0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续&nbsp;IO&nbsp;进行非阻塞操作。<br/>-&nbsp;0o200000:如果path不指向目录,则出错。<br/>-&nbsp;0o400000:如果path指向符号链接,则出错。<br/>-&nbsp;0o4010000:以同步IO的方式打开文件。 |
Z
zengyawen 已提交
576 577
| mode     | number                          | 是   | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o666。<br/>-&nbsp;0o666:所有者具有读、写权限,所有用户组具有读、写权限,其余用户具有读、写权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
| callback | AsyncCallback&nbsp;&lt;void&gt; | 是   | 异步打开文件之后的回调。                                     |
Z
zengyawen 已提交
578

Z
zhangxingxia 已提交
579
**示例:**
H
haonan_7 已提交
580

Z
zhangxingxia 已提交
581 582 583
  ```js
  fileio.open(path, 0, function(err, fd) {
      // do something
Z
zengyawen 已提交
584
  });
Z
zengyawen 已提交
585 586 587
  ```


Z
zengyawen 已提交
588
## fileio.openSync
Z
zengyawen 已提交
589

Z
zengyawen 已提交
590
openSync(path:string, flags?:number, mode?:number): number
Z
zengyawen 已提交
591

Z
zengyawen 已提交
592
以同步方法打开文件。
Z
zengyawen 已提交
593

594 595
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
596
**参数:**
H
haonan_7 已提交
597

Z
zengyawen 已提交
598 599 600
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
601
| flags  | number | 否   | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:<br/>-&nbsp;0o0:只读打开。<br/>-&nbsp;0o1:只写打开。<br/>-&nbsp;0o2:读写打开。<br/>同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:<br/>-&nbsp;0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数&nbsp;mode。<br/>-&nbsp;0o200:如果追加了0o100选项,且文件已经存在,则出错。<br/>-&nbsp;0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。<br/>-&nbsp;0o2000:以追加方式打开,后续写将追加到文件末尾。<br/>-&nbsp;0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续&nbsp;IO&nbsp;进行非阻塞操作。<br/>-&nbsp;0o200000:如果path不指向目录,则出错。<br/>-&nbsp;0o400000:如果path指向符号链接,则出错。<br/>-&nbsp;0o4010000:以同步IO的方式打开文件。 |
W
wangbo 已提交
602
| mode   | number | 否   | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o666。<br/>-&nbsp;0o666:所有者具有读、写权限,所有用户组具有读、写权限,其余用户具有读、写权限。<br/>-&nbsp;0o640:所有者具有读、写权限,所有用户组具有读权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。<br/>创建出的文件权限受umask影响,umask随进程启动确定,其修改当前不开放。 |
Z
zengyawen 已提交
603

Z
zhangxingxia 已提交
604
**返回值:**
H
haonan_7 已提交
605 606 607 608

  | 类型     | 说明          |
  | ------ | ----------- |
  | number | 打开文件的文件描述符。 |
Z
zengyawen 已提交
609

Z
zhangxingxia 已提交
610
**示例:**
H
haonan_7 已提交
611

Z
zhangxingxia 已提交
612
  ```js
W
wangbo 已提交
613 614 615 616 617 618 619 620 621
  let fd = fileio.openSync(path, 0o102, 0o640);
  ```
  ```js
  let fd = fileio.openSync(path, 0o102, 0o666);
  fileio.writeSync(fd, 'hello world');
  let fd1 = fileio.openSync(path, 0o2002);
  fileio.writeSync(fd1, 'hello world');
  let num = fileio.readSync(fd1, new ArrayBuffer(4096), {position: 0});
  console.info("num == " + num);
R
raoxian 已提交
622
  ```
Z
zengyawen 已提交
623 624


Z
zengyawen 已提交
625
## fileio.read
Z
zengyawen 已提交
626

627 628 629 630 631
read(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
632

H
haonan_7 已提交
633
从文件读取数据,使用Promise异步回调。
Z
zengyawen 已提交
634

635 636
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
637
**参数:**
H
haonan_7 已提交
638

Z
zhangxingxia 已提交
639 640 641 642
| 参数名  | 类型        | 必填 | 说明                                                         |
| ------- | ----------- | ---- | ------------------------------------------------------------ |
| fd      | number      | 是   | 待读取文件的文件描述符。                                     |
| buffer  | ArrayBuffer | 是   | 用于保存读取到的文件数据的缓冲区。                           |
Z
zhangxingxia 已提交
643
| options | Object      | 否   | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。 |
Z
zengyawen 已提交
644

Z
zhangxingxia 已提交
645
**返回值:**
Z
zhangxingxia 已提交
646

H
haonan_7 已提交
647 648 649
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
  | Promise&lt;[ReadOut](#readout)&gt; | Promise对象。返回读取的结果。 |
Z
zengyawen 已提交
650

Z
zhangxingxia 已提交
651
**示例:**
H
haonan_7 已提交
652

Z
zhangxingxia 已提交
653
  ```js
Z
zengyawen 已提交
654 655
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
656
  fileio.read(fd, buf).then(function(readOut){
H
haonan_7 已提交
657
      console.info("read file data succeed");
Z
zhangxingxia 已提交
658
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
659 660
  }).catch(function(err){
      console.info("read file data failed with error:"+ err);
Z
zhangxingxia 已提交
661
  });
Z
zengyawen 已提交
662 663 664
  ```


Z
zengyawen 已提交
665
## fileio.read
Z
zengyawen 已提交
666

667 668 669 670 671
read(fd: number, buffer: ArrayBuffer, options: {
    offset?: number;
    length?: number;
    position?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
672

H
haonan_7 已提交
673
从文件读取数据,使用callback异步回调。
Z
zengyawen 已提交
674

675 676
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
677
**参数:**
H
haonan_7 已提交
678 679 680 681 682 683 684

  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                                   | 是    | 待读取文件的文件描述符。                             |
  | buffer   | ArrayBuffer                              | 是    | 用于保存读取到的文件数据的缓冲区。                        |
  | options  | Object                                   | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
  | callback | AsyncCallback&lt;[ReadOut](#readout)&gt; | 是    | 异步读取数据之后的回调。                             |
Z
zengyawen 已提交
685

Z
zhangxingxia 已提交
686
**示例:**
H
haonan_7 已提交
687

Z
zhangxingxia 已提交
688
  ```js
Z
zengyawen 已提交
689 690
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
691
  fileio.read(fd, buf, function (err, readOut) {
Z
zhangxingxia 已提交
692
      if (readOut) {
H
haonan_7 已提交
693
          console.info("read file data succeed");
Z
zhangxingxia 已提交
694
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
695 696
      }
  });
Z
zengyawen 已提交
697
  ```
Z
zengyawen 已提交
698 699


Z
zengyawen 已提交
700
## fileio.readSync
Z
zengyawen 已提交
701

702 703 704 705 706
readSync(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): number
Z
zengyawen 已提交
707 708 709

以同步方法从文件读取数据。

710 711
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
712
**参数:**
H
haonan_7 已提交
713 714 715 716 717 718

  | 参数名     | 类型          | 必填   | 说明                                       |
  | ------- | ----------- | ---- | ---------------------------------------- |
  | fd      | number      | 是    | 待读取文件的文件描述符。                             |
  | buffer  | ArrayBuffer | 是    | 用于保存读取到的文件数据的缓冲区。                        |
  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
Z
zengyawen 已提交
719

Z
zhangxingxia 已提交
720
**返回值:**
H
haonan_7 已提交
721 722 723 724

  | 类型     | 说明       |
  | ------ | -------- |
  | number | 实际读取的长度。 |
Z
zengyawen 已提交
725

Z
zhangxingxia 已提交
726
**示例:**
H
haonan_7 已提交
727

Z
zhangxingxia 已提交
728
  ```js
Z
zengyawen 已提交
729 730 731 732 733 734 735 736 737 738
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
  let num = fileio.readSync(fd, buf);
  ```


## fileio.rmdir<sup>7+</sup>

rmdir(path: string): Promise&lt;void&gt;

H
haonan_7 已提交
739
删除目录,使用Promise异步回调。
Z
zengyawen 已提交
740

741 742
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
743
**参数:**
H
haonan_7 已提交
744

Z
zengyawen 已提交
745 746 747
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除目录的应用沙箱路径。 |
Z
zengyawen 已提交
748

Z
zhangxingxia 已提交
749
**返回值:**
H
haonan_7 已提交
750 751 752 753

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
754

Z
zhangxingxia 已提交
755
**示例:**
H
haonan_7 已提交
756

Z
zhangxingxia 已提交
757 758
  ```js
  fileio.rmdir(path).then(function() {
H
haonan_7 已提交
759
      console.info("rmdir succeed");
Z
zhangxingxia 已提交
760 761
  }).catch(function(err){
      console.info("rmdir failed with error:"+ err);
Z
zengyawen 已提交
762 763 764 765 766 767 768 769
  });
  ```


## fileio.rmdir<sup>7+</sup>

rmdir(path: string, callback:AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
770
删除目录,使用callback异步回调。
Z
zengyawen 已提交
771

772 773
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
774
**参数:**
H
haonan_7 已提交
775

Z
zengyawen 已提交
776 777 778 779
| 参数名   | 类型                      | 必填 | 说明                       |
| -------- | ------------------------- | ---- | -------------------------- |
| path     | string                    | 是   | 待删除目录的应用沙箱路径。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步删除目录之后的回调。   |
Z
zengyawen 已提交
780

Z
zhangxingxia 已提交
781
**示例:**
H
haonan_7 已提交
782

Z
zhangxingxia 已提交
783 784 785
  ```js
  fileio.rmdir(path, function(err){
      // do something
H
haonan_7 已提交
786
      console.info("rmdir succeed");
Z
zengyawen 已提交
787 788 789 790
  });
  ```


791
## fileio.rmdirSync<sup>7+</sup>
Z
zengyawen 已提交
792

793
rmdirSync(path: string): void
Z
zengyawen 已提交
794 795 796

以同步方法删除目录。

797 798
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
799
**参数:**
H
haonan_7 已提交
800

Z
zengyawen 已提交
801 802 803
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除目录的应用沙箱路径。 |
Z
zengyawen 已提交
804

Z
zhangxingxia 已提交
805
**示例:**
H
haonan_7 已提交
806

Z
zhangxingxia 已提交
807
  ```js
Z
zengyawen 已提交
808 809 810 811 812 813 814 815
  fileio.rmdirSync(path);
  ```


## fileio.unlink

unlink(path:string): Promise&lt;void&gt;

H
haonan_7 已提交
816
删除文件,使用Promise异步回调。
Z
zengyawen 已提交
817

818 819
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
820
**参数:**
H
haonan_7 已提交
821

Z
zengyawen 已提交
822 823 824
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除文件的应用沙箱路径。 |
Z
zengyawen 已提交
825

Z
zhangxingxia 已提交
826
**返回值:**
H
haonan_7 已提交
827 828 829 830

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
831

Z
zhangxingxia 已提交
832
**示例:**
H
haonan_7 已提交
833

Z
zhangxingxia 已提交
834 835
  ```js
  fileio.unlink(path).then(function(){
H
haonan_7 已提交
836
      console.info("remove file succeed");
Z
zhangxingxia 已提交
837 838 839
  }).catch(function(error){
      console.info("remove file failed with error:"+ error);
  });
Z
zengyawen 已提交
840 841 842 843 844 845 846
  ```


## fileio.unlink

unlink(path:string, callback:AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
847
删除文件,使用callback异步回调。
Z
zengyawen 已提交
848

849 850
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
851
**参数:**
H
haonan_7 已提交
852

Z
zengyawen 已提交
853 854 855 856
| 参数名   | 类型                      | 必填 | 说明                       |
| -------- | ------------------------- | ---- | -------------------------- |
| path     | string                    | 是   | 待删除文件的应用沙箱路径。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步删除文件之后的回调。   |
Z
zengyawen 已提交
857

Z
zhangxingxia 已提交
858
**示例:**
H
haonan_7 已提交
859

Z
zhangxingxia 已提交
860 861
  ```js
  fileio.unlink(path, function(err) {
H
haonan_7 已提交
862
      console.info("remove file succeed");
Z
zengyawen 已提交
863 864 865 866 867 868 869 870 871 872
  });
  ```


## fileio.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

873 874
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
875
**参数:**
H
haonan_7 已提交
876

Z
zengyawen 已提交
877 878 879
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除文件的应用沙箱路径。 |
Z
zengyawen 已提交
880

Z
zhangxingxia 已提交
881
**示例:**
H
haonan_7 已提交
882

Z
zhangxingxia 已提交
883
  ```js
Z
zengyawen 已提交
884 885 886 887 888 889
  fileio.unlinkSync(path);
  ```


## fileio.write

890 891 892 893 894 895
write(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
896

H
haonan_7 已提交
897
将数据写入文件,使用Promise异步回调。
Z
zengyawen 已提交
898

899 900
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
901
**参数:**
H
haonan_7 已提交
902 903 904 905 906 907

  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd      | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
  | options | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。 |
Z
zengyawen 已提交
908

Z
zhangxingxia 已提交
909
**返回值:**
H
haonan_7 已提交
910 911 912 913

  | 类型                    | 说明       |
  | --------------------- | -------- |
  | Promise&lt;number&gt; | Promise对象。返回实际写入的长度。 |
Z
zengyawen 已提交
914

Z
zhangxingxia 已提交
915
**示例:**
H
haonan_7 已提交
916

Z
zhangxingxia 已提交
917
  ```js
Z
zhangxingxia 已提交
918
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
Z
zhangxingxia 已提交
919
  fileio.write(fd, "hello, world").then(function(number){
H
haonan_7 已提交
920
       console.info("write data to file succeed and size is:"+ number);
Z
zhangxingxia 已提交
921 922 923
  }).catch(function(err){
      console.info("write data to file failed with error:"+ err);
  });
Z
zengyawen 已提交
924 925 926 927 928
  ```


## fileio.write

929 930 931 932 933 934
write(fd: number, buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
935

H
haonan_7 已提交
936
将数据写入文件,使用callback异步回调。
Z
zengyawen 已提交
937

938 939
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
940
**参数:**
H
haonan_7 已提交
941 942 943 944 945 946 947

  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer   | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
  | options  | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。 |
  | callback | AsyncCallback&lt;number&gt;     | 是    | 异步将数据写入完成后执行的回调函数。                       |
Z
zengyawen 已提交
948

Z
zhangxingxia 已提交
949
**示例:**
H
haonan_7 已提交
950

Z
zhangxingxia 已提交
951
  ```js
Z
zengyawen 已提交
952 953
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
  fileio.write(fd, "hello, world", function (err, bytesWritten) {
Z
zhangxingxia 已提交
954
      if (bytesWritten) {
H
haonan_7 已提交
955
         console.info("write data to file succeed and size is:"+ bytesWritten);
Z
zengyawen 已提交
956 957 958 959 960 961 962
      }
  });
  ```


## fileio.writeSync

963 964 965 966 967 968
writeSync(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
969 970 971

以同步方法将数据写入文件。

972 973
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
974
**参数:**
H
haonan_7 已提交
975 976 977 978 979 980

  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd      | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
  | options | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。 |
Z
zengyawen 已提交
981

Z
zhangxingxia 已提交
982
**返回值:**
H
haonan_7 已提交
983 984 985 986

  | 类型     | 说明       |
  | ------ | -------- |
  | number | 实际写入的长度。 |
Z
zengyawen 已提交
987

Z
zhangxingxia 已提交
988
**示例:**
H
haonan_7 已提交
989

Z
zhangxingxia 已提交
990
  ```js
Z
zengyawen 已提交
991 992 993 994 995 996 997 998 999
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
  let num = fileio.writeSync(fd, "hello, world");
  ```


## fileio.hash

hash(path: string, algorithm: string): Promise&lt;string&gt;

H
haonan_7 已提交
1000
计算文件的哈希值,使用Promise异步回调。
Z
zengyawen 已提交
1001

1002 1003
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1004
**参数:**
H
haonan_7 已提交
1005

Z
zengyawen 已提交
1006 1007 1008 1009
| 参数名    | 类型   | 必填 | 说明                                                         |
| --------- | ------ | ---- | ------------------------------------------------------------ |
| path      | string | 是   | 待计算哈希值文件的应用沙箱路径。                             |
| algorithm | string | 是   | 哈希计算采用的算法。可选&nbsp;"md5"、"sha1"&nbsp;&nbsp;"sha256"。建议采用安全强度更高的&nbsp;"sha256"。 |
Z
zengyawen 已提交
1010

Z
zhangxingxia 已提交
1011
**返回值:**
H
haonan_7 已提交
1012 1013 1014 1015

  | 类型                    | 说明                         |
  | --------------------- | -------------------------- |
  | Promise&lt;string&gt; | Promise对象。返回文件的哈希值。表示为十六进制数字串,所有字母均大写。 |
Z
zengyawen 已提交
1016

Z
zhangxingxia 已提交
1017
**示例:**
H
haonan_7 已提交
1018

Z
zhangxingxia 已提交
1019 1020
  ```js
  fileio.hash(path, "sha256").then(function(str){
H
haonan_7 已提交
1021
      console.info("calculate file hash succeed:"+ str);
1022
  }).catch(function(err){
W
wangbo 已提交
1023
      console.info("calculate file hash failed with error:"+ err);
Z
zhangxingxia 已提交
1024
  });
Z
zengyawen 已提交
1025 1026 1027 1028 1029
  ```


## fileio.hash

1030
hash(path: string, algorithm: string, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
1031

H
haonan_7 已提交
1032
计算文件的哈希值,使用callback异步回调。
Z
zengyawen 已提交
1033

1034 1035
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1036
**参数:**
H
haonan_7 已提交
1037

Z
zengyawen 已提交
1038 1039 1040 1041
| 参数名    | 类型                        | 必填 | 说明                                                         |
| --------- | --------------------------- | ---- | ------------------------------------------------------------ |
| path      | string                      | 是   | 待计算哈希值文件的应用沙箱路径。                             |
| algorithm | string                      | 是   | 哈希计算采用的算法。可选&nbsp;"md5"、"sha1"&nbsp;&nbsp;"sha256"。建议采用安全强度更高的&nbsp;"sha256"。 |
H
haonan_7 已提交
1042
| callback  | AsyncCallback&lt;string&gt; | 是   | 异步计算文件哈希操作之后的回调函数(其中给定文件哈希值表示为十六进制数字串,所有字母均大写)。 |
Z
zengyawen 已提交
1043

Z
zhangxingxia 已提交
1044
**示例:**
H
haonan_7 已提交
1045

Z
zhangxingxia 已提交
1046
  ```js
Z
zhangxingxia 已提交
1047
  fileio.hash(path, "sha256", function(err, hashStr) {
Z
zhangxingxia 已提交
1048
      if (hashStr) {
H
haonan_7 已提交
1049
          console.info("calculate file hash succeed:"+ hashStr);
Z
zengyawen 已提交
1050 1051 1052 1053 1054 1055 1056 1057 1058
      }
  });
  ```


## fileio.chmod<sup>7+</sup>

chmod(path: string, mode: number):Promise&lt;void&gt;

H
haonan_7 已提交
1059
改变文件权限,使用Promise异步回调。
Z
zengyawen 已提交
1060

1061 1062
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1063
**参数:**
H
haonan_7 已提交
1064

Z
zengyawen 已提交
1065 1066
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1067
| path   | string | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1068
| mode   | number | 是   | 改变文件权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
Z
zengyawen 已提交
1069

Z
zhangxingxia 已提交
1070
**返回值:**
H
haonan_7 已提交
1071 1072 1073 1074

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1075

Z
zhangxingxia 已提交
1076
**示例:**
H
haonan_7 已提交
1077

Z
zhangxingxia 已提交
1078
  ```js
1079
  fileio.chmod(path, 0o700).then(function() {
H
haonan_7 已提交
1080
      console.info("chmod succeed");
Z
zhangxingxia 已提交
1081 1082
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
1083 1084 1085 1086 1087 1088 1089 1090
  });
  ```


## fileio.chmod<sup>7+</sup>

chmod(path: string, mode: number, callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
1091
改变文件权限,使用callback异步回调。
Z
zengyawen 已提交
1092

1093 1094
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1095
**参数:**
H
haonan_7 已提交
1096

Z
zengyawen 已提交
1097 1098
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1099
| path     | string                    | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1100 1101
| mode     | number                    | 是   | 改变文件权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件权限之后的回调。                                 |
Z
zengyawen 已提交
1102

Z
zhangxingxia 已提交
1103
**示例:**
H
haonan_7 已提交
1104

Z
zhangxingxia 已提交
1105
  ```js
1106
  fileio.chmod(path, 0o700, function (err) {
Z
zhangxingxia 已提交
1107
      // do something
Z
zengyawen 已提交
1108 1109 1110 1111 1112 1113 1114 1115
  });
  ```


## fileio.chmodSync<sup>7+</sup>

chmodSync(path: string, mode: number): void

H
haonan_7 已提交
1116
以同步方法改变文件权限。
Z
zengyawen 已提交
1117

1118 1119
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1120
**参数:**
H
haonan_7 已提交
1121

Z
zengyawen 已提交
1122 1123
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1124
| path   | string | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1125
| mode   | number | 是   | 改变文件权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
Z
zengyawen 已提交
1126

Z
zhangxingxia 已提交
1127
**示例:**
H
haonan_7 已提交
1128

Z
zhangxingxia 已提交
1129
  ```js
1130
  fileio.chmodSync(path, 0o700);
Z
zengyawen 已提交
1131 1132 1133 1134 1135 1136 1137
  ```


## fileio.fstat<sup>7+</sup>

fstat(fd: number): Promise&lt;Stat&gt;

H
haonan_7 已提交
1138
基于文件描述符获取文件状态信息,使用Promise异步回调。
Z
zengyawen 已提交
1139

1140 1141
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1142
**参数:**
H
haonan_7 已提交
1143 1144 1145 1146

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待获取文件状态的文件描述符。 |
Z
zengyawen 已提交
1147

Z
zhangxingxia 已提交
1148
**返回值:**
H
haonan_7 已提交
1149 1150 1151 1152

  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
  | Promise&lt;[Stat](#stat)&gt; | Promise对象。返回表示文件状态的具体信息。 |
Z
zengyawen 已提交
1153

Z
zhangxingxia 已提交
1154
**示例:**
H
haonan_7 已提交
1155

Z
zhangxingxia 已提交
1156
  ```js
1157
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1158
  fileio.fstat(fd).then(function(stat){
H
haonan_7 已提交
1159
      console.info("fstat succeed:"+ JSON.stringify(stat));
Z
zhangxingxia 已提交
1160 1161 1162
  }).catch(function(err){
      console.info("fstat failed with error:"+ err);
  });
Z
zengyawen 已提交
1163 1164 1165 1166 1167 1168 1169
  ```


## fileio.fstat<sup>7+</sup>

fstat(fd: number, callback: AsyncCallback&lt;Stat&gt;): void

H
haonan_7 已提交
1170
基于文件描述符获取文件状态信息,使用callback异步回调。
Z
zengyawen 已提交
1171

1172 1173
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1174
**参数:**
H
haonan_7 已提交
1175 1176 1177 1178 1179

  | 参数名      | 类型                                 | 必填   | 说明               |
  | -------- | ---------------------------------- | ---- | ---------------- |
  | fd       | number                             | 是    | 待获取文件状态的文件描述符。     |
  | callback | AsyncCallback&lt;[Stat](#stat)&gt; | 是    | 异步获取文件状态信息之后的回调。 |
Z
zengyawen 已提交
1180

Z
zhangxingxia 已提交
1181
**示例:**
H
haonan_7 已提交
1182

Z
zhangxingxia 已提交
1183
  ```js
Z
zengyawen 已提交
1184
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1185 1186
  fileio.fstat(fd, function (err) {
      // do something
Z
zengyawen 已提交
1187 1188 1189 1190 1191 1192 1193 1194
  });
  ```


## fileio.fstatSync<sup>7+</sup>

fstatSync(fd: number): Stat

H
haonan_7 已提交
1195
以同步方法基于文件描述符获取文件状态信息。
Z
zengyawen 已提交
1196

1197 1198
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1199
**参数:**
H
haonan_7 已提交
1200 1201 1202 1203

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待获取文件状态的文件描述符。 |
Z
zengyawen 已提交
1204

Z
zhangxingxia 已提交
1205
**返回值:**
H
haonan_7 已提交
1206 1207 1208 1209

  | 类型            | 说明         |
  | ------------- | ---------- |
  | [Stat](#stat) | 表示文件状态的具体信息。 |
Z
zengyawen 已提交
1210

Z
zhangxingxia 已提交
1211
**示例:**
H
haonan_7 已提交
1212

Z
zhangxingxia 已提交
1213
  ```js
Z
zengyawen 已提交
1214 1215 1216 1217 1218 1219 1220
  let fd = fileio.openSync(path);
  let stat = fileio.fstatSync(fd);
  ```


## fileio.ftruncate<sup>7+</sup>

1221
ftruncate(fd: number, len?: number): Promise&lt;void&gt;
Z
zengyawen 已提交
1222

H
haonan_7 已提交
1223
基于文件描述符截断文件,使用Promise异步回调。
Z
zengyawen 已提交
1224

1225 1226
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1227
**参数:**
H
haonan_7 已提交
1228 1229 1230 1231 1232

  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | fd   | number | 是    | 待截断文件的文件描述符。     |
  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1233

Z
zhangxingxia 已提交
1234
**返回值:**
H
haonan_7 已提交
1235 1236 1237 1238

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。|
Z
zengyawen 已提交
1239

Z
zhangxingxia 已提交
1240
**示例:**
H
haonan_7 已提交
1241

Z
zhangxingxia 已提交
1242
  ```js
Z
zengyawen 已提交
1243
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1244
  fileio.ftruncate(fd, 5).then(function(err) {    
H
haonan_7 已提交
1245
      console.info("truncate file succeed");
Z
zhangxingxia 已提交
1246 1247
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1248 1249 1250 1251 1252 1253 1254 1255
  });
  ```


## fileio.ftruncate<sup>7+</sup>

ftruncate(fd: number, len: number, callback:AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
1256
基于文件描述符截断文件,使用callback异步回调。
Z
zengyawen 已提交
1257

1258 1259
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1260
**参数:**
H
haonan_7 已提交
1261 1262 1263 1264 1265 1266

  | 参数名      | 类型                        | 必填   | 说明               |
  | -------- | ------------------------- | ---- | ---------------- |
  | fd       | number                    | 是    | 待截断文件的文件描述符。     |
  | len      | number                    | 是    | 文件截断后的长度,以字节为单位。 |
  | callback | AsyncCallback&lt;void&gt; | 是    | 回调函数,本调用无返回值。  |
Z
zengyawen 已提交
1267

Z
zhangxingxia 已提交
1268
**示例:**
H
haonan_7 已提交
1269

Z
zhangxingxia 已提交
1270
  ```js
1271 1272 1273
  let fd = fileio.openSync(path);
  let len = 5;
  fileio.ftruncate(fd, 5, function(err){
Z
zhangxingxia 已提交
1274
      // do something
Z
zengyawen 已提交
1275 1276 1277 1278 1279 1280 1281 1282 1283 1284
  });
  ```


## fileio.ftruncateSync<sup>7+</sup>

ftruncateSync(fd: number, len?: number): void

以同步方法基于文件描述符截断文件。

1285 1286
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1287
**参数:**
H
haonan_7 已提交
1288 1289 1290 1291 1292

  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | fd   | number | 是    | 待截断文件的文件描述符。     |
  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1293

Z
zhangxingxia 已提交
1294
**示例:**
H
haonan_7 已提交
1295

Z
zhangxingxia 已提交
1296
  ```js
1297 1298
  let fd = fileio.openSync(path);
  let len = 5;
Z
zhangxingxia 已提交
1299
  fileio.ftruncateSync(fd, len);
Z
zengyawen 已提交
1300 1301 1302 1303 1304
  ```


## fileio.truncate<sup>7+</sup>

1305
truncate(path: string, len?: number): Promise&lt;void&gt;
Z
zengyawen 已提交
1306

H
haonan_7 已提交
1307
基于文件路径截断文件,使用Promise异步回调。
Z
zengyawen 已提交
1308

1309 1310
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1311
**参数:**
H
haonan_7 已提交
1312

Z
zengyawen 已提交
1313 1314 1315
| 参数名 | 类型   | 必填 | 说明                             |
| ------ | ------ | ---- | -------------------------------- |
| path   | string | 是   | 待截断文件的应用沙箱路径。       |
H
haonan_7 已提交
1316
| len    | number | 否   | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1317

Z
zhangxingxia 已提交
1318
**返回值:**
H
haonan_7 已提交
1319 1320 1321 1322

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1323

Z
zhangxingxia 已提交
1324
**示例:**
H
haonan_7 已提交
1325

Z
zhangxingxia 已提交
1326
  ```js
1327
  let len = 5;
Z
zhangxingxia 已提交
1328
  fileio.truncate(path, len).then(function(){
H
haonan_7 已提交
1329
      console.info("truncate file succeed");
Z
zhangxingxia 已提交
1330 1331
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1332 1333 1334 1335 1336 1337 1338 1339
  });
  ```


## fileio.truncate<sup>7+</sup>

truncate(path: string, len: number, callback:AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
1340
基于文件路径截断文件,使用callback异步回调。
Z
zengyawen 已提交
1341

1342 1343
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1344
**参数:**
H
haonan_7 已提交
1345

Z
zengyawen 已提交
1346 1347 1348 1349
| 参数名   | 类型                      | 必填 | 说明                             |
| -------- | ------------------------- | ---- | -------------------------------- |
| path     | string                    | 是   | 待截断文件的应用沙箱路径。       |
| len      | number                    | 是   | 文件截断后的长度,以字节为单位。 |
W
wangbo 已提交
1350
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数,本调用无返回值。   |
Z
zengyawen 已提交
1351

Z
zhangxingxia 已提交
1352
**示例:**
H
haonan_7 已提交
1353

Z
zhangxingxia 已提交
1354
  ```js
1355
  let len = 5;
Z
zhangxingxia 已提交
1356 1357
  fileio.truncate(path, len, function(err){
      // do something
Z
zengyawen 已提交
1358 1359 1360 1361 1362 1363
  });
  ```


## fileio.truncateSync<sup>7+</sup>

1364
truncateSync(path: string, len?: number): void
Z
zengyawen 已提交
1365 1366 1367

以同步方法基于文件路径截断文件。

1368 1369
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1370
**参数:**
H
haonan_7 已提交
1371

Z
zengyawen 已提交
1372 1373 1374 1375
| 参数名 | 类型   | 必填 | 说明                             |
| ------ | ------ | ---- | -------------------------------- |
| path   | string | 是   | 待截断文件的应用沙箱路径。       |
| len    | number | 否   | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1376

Z
zhangxingxia 已提交
1377
**示例:**
H
haonan_7 已提交
1378

Z
zhangxingxia 已提交
1379
  ```js
1380
  let len = 5;
Z
zhangxingxia 已提交
1381
  fileio.truncateSync(path, len);
Z
zengyawen 已提交
1382 1383 1384 1385 1386
  ```


## fileio.readText<sup>7+</sup>

1387 1388 1389 1390 1391
readText(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): Promise&lt;string&gt;
Z
zengyawen 已提交
1392

H
haonan_7 已提交
1393
基于文本方式读取文件(即直接读取文件的文本内容),使用Promise异步回调。
Z
zengyawen 已提交
1394

1395 1396
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1397
**参数:**
H
haonan_7 已提交
1398

Z
zengyawen 已提交
1399 1400 1401 1402
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| filePath | string | 是   | 待读取文件的应用沙箱路径。                                   |
| options  | Object | 否   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
Z
zengyawen 已提交
1403

Z
zhangxingxia 已提交
1404
**返回值:**
H
haonan_7 已提交
1405 1406 1407 1408

  | 类型                    | 说明         |
  | --------------------- | ---------- |
  | Promise&lt;string&gt; | Promise对象。返回读取文件的内容。 |
Z
zengyawen 已提交
1409

Z
zhangxingxia 已提交
1410
**示例:**
H
haonan_7 已提交
1411

Z
zhangxingxia 已提交
1412 1413
  ```js
  fileio.readText(path).then(function(str) {
H
haonan_7 已提交
1414
      console.info("readText succeed:"+ str);
Z
zhangxingxia 已提交
1415 1416
  }).catch(function(err){
      console.info("readText failed with error:"+ err);
Z
zengyawen 已提交
1417 1418 1419 1420 1421 1422
  });
  ```


## fileio.readText<sup>7+</sup>

1423 1424 1425 1426 1427
readText(filePath: string, options: {
    position?: number;
    length?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
1428

H
haonan_7 已提交
1429
基于文本方式读取文件(即直接读取文件的文本内容),使用callback异步回调。
Z
zengyawen 已提交
1430

1431 1432
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1433
**参数:**
H
haonan_7 已提交
1434

Z
zengyawen 已提交
1435 1436 1437
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| filePath | string                      | 是   | 待读取文件的应用沙箱路径。                                   |
1438
| options  | Object                      | 是   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
W
wangbo 已提交
1439
| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数,返回读取文件的内容。                         |
Z
zengyawen 已提交
1440

Z
zhangxingxia 已提交
1441
**示例:**
H
haonan_7 已提交
1442

Z
zhangxingxia 已提交
1443
  ```js
1444
  fileio.readText(path, { position: 1, encoding: 'UTF-8' }, function(err, str){
Z
zhangxingxia 已提交
1445
      // do something
Z
zengyawen 已提交
1446 1447 1448 1449 1450 1451
  });
  ```


## fileio.readTextSync<sup>7+</sup>

1452 1453 1454 1455 1456
readTextSync(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): string
Z
zengyawen 已提交
1457 1458 1459

以同步方法基于文本方式读取文件(即直接读取文件的文本内容)。

1460 1461
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1462
**参数:**
H
haonan_7 已提交
1463

Z
zengyawen 已提交
1464 1465 1466 1467
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| filePath | string | 是   | 待读取文件的应用沙箱路径。                                   |
| options  | Object | 否   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
Z
zengyawen 已提交
1468

Z
zhangxingxia 已提交
1469
**返回值:**
H
haonan_7 已提交
1470 1471 1472 1473

  | 类型   | 说明                 |
  | ------ | -------------------- |
  | string | 返回读取文件的内容。 |
Z
zengyawen 已提交
1474

Z
zhangxingxia 已提交
1475
**示例:**
H
haonan_7 已提交
1476

Z
zhangxingxia 已提交
1477 1478
  ```js
  let str = fileio.readTextSync(path, {position: 1, length: 3});
Z
zengyawen 已提交
1479 1480 1481 1482 1483 1484 1485
  ```


## fileio.lstat<sup>7+</sup>

lstat(path: string): Promise&lt;Stat&gt;

H
haonan_7 已提交
1486
获取链接信息,使用Promise异步回调。
Z
zengyawen 已提交
1487

1488 1489
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1490
**参数:**
H
haonan_7 已提交
1491

Z
zengyawen 已提交
1492 1493
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
W
wangbo 已提交
1494
| path   | string | 是   | 目标文件的应用沙箱路径。 |
Z
zengyawen 已提交
1495

Z
zhangxingxia 已提交
1496
**返回值:**
H
haonan_7 已提交
1497 1498 1499 1500

  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
  | Promise&lt;[Stat](#stat)&gt; | promise对象,返回文件对象,表示文件的具体信息,详情见stat。 |
Z
zengyawen 已提交
1501

Z
zhangxingxia 已提交
1502
**示例:**
H
haonan_7 已提交
1503

Z
zhangxingxia 已提交
1504 1505
  ```js
  fileio.lstat(path).then(function(stat){
Z
zhangxingxia 已提交
1506
      console.info("get link status succeed:"+ JSON.stringify(stat));
Z
zhangxingxia 已提交
1507 1508 1509
  }).catch(function(err){
      console.info("get link status failed with error:"+ err);
  });
Z
zengyawen 已提交
1510 1511 1512 1513 1514 1515 1516
  ```


## fileio.lstat<sup>7+</sup>

lstat(path:string, callback:AsyncCallback&lt;Stat&gt;): void

H
haonan_7 已提交
1517
获取链接信息,使用callback异步回调。
Z
zengyawen 已提交
1518

1519 1520
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1521
**参数:**
H
haonan_7 已提交
1522

Z
zengyawen 已提交
1523 1524
| 参数名   | 类型                               | 必填 | 说明                                   |
| -------- | ---------------------------------- | ---- | -------------------------------------- |
W
wangbo 已提交
1525 1526
| path     | string                             | 是   | 目标文件的应用沙箱路径。 |
| callback | AsyncCallback&lt;[Stat](#stat)&gt; | 是   | 回调函数,返回文件的具体信息。       |
Z
zengyawen 已提交
1527

Z
zhangxingxia 已提交
1528
**示例:**
H
haonan_7 已提交
1529

Z
zhangxingxia 已提交
1530 1531 1532
  ```js
  fileio.lstat(path, function (err, stat) {
      // do something
Z
zengyawen 已提交
1533
  });
Z
zengyawen 已提交
1534 1535 1536 1537 1538 1539 1540
  ```


## fileio.lstatSync<sup>7+</sup>

lstatSync(path:string): Stat

1541
以同步方法获取链接信息。
Z
zengyawen 已提交
1542

1543 1544
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1545
**参数:**
H
haonan_7 已提交
1546

Z
zengyawen 已提交
1547 1548
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
W
wangbo 已提交
1549
| path   | string | 是   | 目标文件的应用沙箱路径。 |
Z
zengyawen 已提交
1550

Z
zhangxingxia 已提交
1551
**返回值:**
H
haonan_7 已提交
1552 1553 1554 1555

  | 类型            | 说明         |
  | ------------- | ---------- |
  | [Stat](#stat) | 表示文件的具体信息。 |
Z
zengyawen 已提交
1556

Z
zhangxingxia 已提交
1557
**示例:**
H
haonan_7 已提交
1558

Z
zhangxingxia 已提交
1559
  ```js
Z
zengyawen 已提交
1560 1561 1562 1563 1564 1565 1566 1567
  let stat = fileio.lstatSync(path);
  ```


## fileio.rename<sup>7+</sup>

rename(oldPath: string, newPath: string): Promise&lt;void&gt;

H
haonan_7 已提交
1568
重命名文件,使用Promise异步回调。
Z
zengyawen 已提交
1569

1570 1571
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1572
**参数:**
H
haonan_7 已提交
1573

Z
zengyawen 已提交
1574 1575 1576 1577
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
| newPath | String | 是   | 目标文件的新应用沙箱路径。   |
Z
zengyawen 已提交
1578

Z
zhangxingxia 已提交
1579
**返回值:**
H
haonan_7 已提交
1580 1581 1582 1583

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1584

Z
zhangxingxia 已提交
1585
**示例:**
H
haonan_7 已提交
1586

Z
zhangxingxia 已提交
1587
  ```js
1588 1589
  let oldPath = path;
  let newPath = oldPath + '123';
W
wangbo 已提交
1590
  fileio.rename(oldPath, newPath).then(function() {
H
haonan_7 已提交
1591
      console.info("rename succeed");
Z
zhangxingxia 已提交
1592 1593
  }).catch(function(err){
      console.info("rename failed with error:"+ err);
Z
zengyawen 已提交
1594 1595 1596 1597 1598 1599 1600 1601
  });
  ```


## fileio.rename<sup>7+</sup>

rename(oldPath: string, newPath: string, callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
1602
重命名文件,使用callback异步回调。
Z
zengyawen 已提交
1603

1604 1605
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1606
**参数:**
H
haonan_7 已提交
1607

Z
zengyawen 已提交
1608 1609 1610 1611 1612
| 参数名   | 类型                      | 必填 | 说明                         |
| -------- | ------------------------- | ---- | ---------------------------- |
| oldPath  | string                    | 是   | 目标文件的当前应用沙箱路径。 |
| newPath  | String                    | 是   | 目标文件的新应用沙箱路径。   |
| Callback | AsyncCallback&lt;void&gt; | 是   | 异步重命名文件之后的回调。   |
Z
zengyawen 已提交
1613

Z
zhangxingxia 已提交
1614
**示例:**
H
haonan_7 已提交
1615

Z
zhangxingxia 已提交
1616
  ```js
1617 1618
  let oldPath = path;
  let newPath = oldPath + '123';
W
wangbo 已提交
1619
  fileio.rename(oldPath, newPath, function(err){
Z
zengyawen 已提交
1620 1621 1622 1623 1624 1625 1626 1627 1628 1629
  });
  ```


## fileio.renameSync<sup>7+</sup>

renameSync(oldPath: string, newPath: string): void

以同步方法重命名文件。

1630 1631
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1632
**参数:**
H
haonan_7 已提交
1633

Z
zengyawen 已提交
1634 1635 1636 1637
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
| newPath | String | 是   | 目标文件的新应用沙箱路径。   |
Z
zengyawen 已提交
1638

Z
zhangxingxia 已提交
1639
**示例:**
H
haonan_7 已提交
1640

Z
zhangxingxia 已提交
1641
  ```js
1642 1643
  let oldPath = path;
  let newPath = oldPath + '123';
W
wangbo 已提交
1644
  fileio.renameSync(oldPath, newPath);
Z
zengyawen 已提交
1645 1646 1647 1648 1649 1650 1651
  ```


## fileio.fsync<sup>7+</sup>

fsync(fd: number): Promise&lt;void&gt;

H
haonan_7 已提交
1652
同步文件数据,使用Promise异步回调。
Z
zengyawen 已提交
1653

1654 1655
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1656
**参数:**
H
haonan_7 已提交
1657 1658 1659 1660

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1661

Z
zhangxingxia 已提交
1662
**返回值:**
H
haonan_7 已提交
1663 1664 1665 1666

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1667

Z
zhangxingxia 已提交
1668
**示例:**
H
haonan_7 已提交
1669

Z
zhangxingxia 已提交
1670
  ```js
1671
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1672
  fileio.fsync(fd).then(function(){
H
haonan_7 已提交
1673
      console.info("sync data succeed");
Z
zhangxingxia 已提交
1674 1675 1676
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
  });
Z
zengyawen 已提交
1677 1678 1679 1680 1681 1682 1683
  ```


## fileio.fsync<sup>7+</sup>

fsync(fd: number, callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
1684
同步文件数据,使用callback异步回调。
Z
zengyawen 已提交
1685

1686 1687
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1688
**参数:**
H
haonan_7 已提交
1689 1690 1691 1692 1693

  | 参数名      | 类型                        | 必填   | 说明              |
  | -------- | ------------------------- | ---- | --------------- |
  | fd       | number                    | 是    | 待同步文件的文件描述符。    |
  | Callback | AsyncCallback&lt;void&gt; | 是    | 异步将文件数据同步之后的回调。 |
Z
zengyawen 已提交
1694

Z
zhangxingxia 已提交
1695
**示例:**
H
haonan_7 已提交
1696

W
wangbo 已提交
1697
  ```js
1698
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
1699
  fileio.fsync(fd, function(err){
Z
zhangxingxia 已提交
1700
      // do something
Z
zengyawen 已提交
1701 1702 1703 1704 1705 1706 1707 1708 1709 1710
  });
  ```


## fileio.fsyncSync<sup>7+</sup>

fsyncSync(fd: number): void

以同步方法同步文件数据。

1711 1712
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1713
**参数:**
H
haonan_7 已提交
1714 1715 1716 1717

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1718

Z
zhangxingxia 已提交
1719
**示例:**
H
haonan_7 已提交
1720

Z
zhangxingxia 已提交
1721
  ```js
1722
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1723
  fileio.fsyncSync(fd);
Z
zengyawen 已提交
1724 1725 1726 1727 1728 1729 1730
  ```


## fileio.fdatasync<sup>7+</sup>

fdatasync(fd: number): Promise&lt;void&gt;

H
haonan_7 已提交
1731
实现文件内容数据同步,使用Promise异步回调。
Z
zengyawen 已提交
1732

1733 1734
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1735
**参数:**
H
haonan_7 已提交
1736 1737 1738 1739

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1740

Z
zhangxingxia 已提交
1741
**返回值:**
H
haonan_7 已提交
1742 1743 1744 1745

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1746

Z
zhangxingxia 已提交
1747
**示例:**
H
haonan_7 已提交
1748

W
wangbo 已提交
1749
  ```js
1750
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1751
  fileio.fdatasync(fd).then(function(err) {
H
haonan_7 已提交
1752
      console.info("sync data succeed");
Z
zhangxingxia 已提交
1753 1754
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
Z
zengyawen 已提交
1755 1756 1757 1758 1759 1760 1761 1762
  });
  ```


## fileio.fdatasync<sup>7+</sup>

fdatasync(fd: number, callback:AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
1763
实现文件内容数据同步,使用callback异步回调。
Z
zengyawen 已提交
1764

1765 1766
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1767
**参数:**
H
haonan_7 已提交
1768 1769 1770 1771 1772

  | 参数名      | 类型                              | 必填   | 说明                |
  | -------- | ------------------------------- | ---- | ----------------- |
  | fd       | number                          | 是    | 待同步文件的文件描述符。      |
  | callback | AsyncCallback&nbsp;&lt;void&gt; | 是    | 异步将文件内容数据同步之后的回调。 |
Z
zengyawen 已提交
1773

Z
zhangxingxia 已提交
1774
**示例:**
H
haonan_7 已提交
1775

Z
zhangxingxia 已提交
1776
  ```js
1777
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
1778
  fileio.fdatasync (fd, function (err) {
Z
zhangxingxia 已提交
1779
      // do something
Z
zengyawen 已提交
1780 1781 1782 1783 1784 1785 1786 1787 1788 1789
  });
  ```


## fileio.fdatasyncSync<sup>7+</sup>

fdatasyncSync(fd: number): void

以同步方法实现文件内容数据同步。

1790 1791
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1792
**参数:**
H
haonan_7 已提交
1793 1794 1795 1796

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1797

Z
zhangxingxia 已提交
1798
**示例:**
H
haonan_7 已提交
1799

Z
zhangxingxia 已提交
1800
  ```js
1801
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
1802 1803 1804 1805 1806 1807 1808 1809
  let stat = fileio.fdatasyncSync(fd);
  ```


## fileio.symlink<sup>7+</sup>

symlink(target: string, srcPath: string): Promise&lt;void&gt;

H
haonan_7 已提交
1810
基于文件路径创建符号链接,使用Promise异步回调。
Z
zengyawen 已提交
1811

1812 1813
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1814
**参数:**
H
haonan_7 已提交
1815

Z
zengyawen 已提交
1816 1817 1818 1819
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| target  | string | 是   | 目标文件的应用沙箱路径。     |
| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
Z
zengyawen 已提交
1820

Z
zhangxingxia 已提交
1821
**返回值:**
H
haonan_7 已提交
1822 1823 1824 1825

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1826

Z
zhangxingxia 已提交
1827
**示例:**
H
haonan_7 已提交
1828

Z
zhangxingxia 已提交
1829
  ```js
1830 1831
  let target = path;
  let srcPath = target + 'aaa';
W
wangbo 已提交
1832
  fileio.symlink(target, srcPath).then(function() {
H
haonan_7 已提交
1833
      console.info("symlink succeed");
Z
zhangxingxia 已提交
1834 1835
  }).catch(function(err){
      console.info("symlink failed with error:"+ err);
Z
zengyawen 已提交
1836 1837 1838 1839 1840 1841 1842 1843
  });
  ```


## fileio.symlink<sup>7+</sup>

symlink(target: string, srcPath: string, callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
1844
基于文件路径创建符号链接,使用callback异步回调。
Z
zengyawen 已提交
1845

1846 1847
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1848
**参数:**
H
haonan_7 已提交
1849

Z
zengyawen 已提交
1850 1851 1852 1853 1854
| 参数名   | 类型                      | 必填 | 说明                             |
| -------- | ------------------------- | ---- | -------------------------------- |
| target   | string                    | 是   | 目标文件的应用沙箱路径。         |
| srcPath  | string                    | 是   | 符号链接文件的应用沙箱路径。     |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步创建符号链接信息之后的回调。 |
Z
zengyawen 已提交
1855

Z
zhangxingxia 已提交
1856
**示例:**
H
haonan_7 已提交
1857

Z
zhangxingxia 已提交
1858
  ```js
1859 1860
  let target = path;
  let srcPath = target + 'aaa';
W
wangbo 已提交
1861
  fileio.symlink(target, srcPath, function (err) {
Z
zhangxingxia 已提交
1862
      // do something
Z
zengyawen 已提交
1863 1864 1865 1866 1867 1868 1869 1870 1871 1872
  });
  ```


## fileio.symlinkSync<sup>7+</sup>

symlinkSync(target: string, srcPath: string): void

以同步的方法基于文件路径创建符号链接。

1873 1874
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1875
**参数:**
H
haonan_7 已提交
1876

Z
zengyawen 已提交
1877 1878 1879 1880
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| target  | string | 是   | 目标文件的应用沙箱路径。     |
| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
Z
zengyawen 已提交
1881

Z
zhangxingxia 已提交
1882
**示例:**
H
haonan_7 已提交
1883

Z
zhangxingxia 已提交
1884
  ```js
1885 1886
  let target = path;
  let srcPath = target + 'aaa';
W
wangbo 已提交
1887
  fileio.symlinkSync(target, srcPath);
Z
zengyawen 已提交
1888 1889 1890 1891 1892 1893 1894
  ```


## fileio.chown<sup>7+</sup>

chown(path: string, uid: number, gid: number): Promise&lt;void&gt;

H
haonan_7 已提交
1895
基于文件路径改变文件所有者,使用Promise异步回调。
Z
zengyawen 已提交
1896

1897 1898
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1899
**参数:**
H
haonan_7 已提交
1900

Z
zengyawen 已提交
1901 1902 1903 1904 1905
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待改变文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID(UserID)。        |
| gid    | number | 是   | 新的GID(GroupID)。       |
Z
zengyawen 已提交
1906

Z
zhangxingxia 已提交
1907
**返回值:**
H
haonan_7 已提交
1908 1909 1910 1911

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1912

Z
zhangxingxia 已提交
1913
**示例:**
H
haonan_7 已提交
1914

Z
zhangxingxia 已提交
1915
  ```js
Z
zengyawen 已提交
1916
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
1917
  fileio.chown(path, stat.uid, stat.gid).then(function(){
H
haonan_7 已提交
1918
      console.info("chown succeed");
Z
zhangxingxia 已提交
1919 1920 1921
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
1922 1923 1924 1925 1926 1927 1928
  ```


## fileio.chown<sup>7+</sup>

chown(path: string, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
1929
基于文件路径改变文件所有者,使用callback异步回调。
Z
zengyawen 已提交
1930

1931 1932
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1933
**参数:**
H
haonan_7 已提交
1934

Z
zengyawen 已提交
1935 1936 1937 1938 1939 1940
| 参数名   | 类型                      | 必填 | 说明                           |
| -------- | ------------------------- | ---- | ------------------------------ |
| path     | string                    | 是   | 待改变文件的应用沙箱路径。     |
| uid      | number                    | 是   | 新的UID。                      |
| gid      | number                    | 是   | 新的GID。                      |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
1941

Z
zhangxingxia 已提交
1942
**示例:**
H
haonan_7 已提交
1943

Z
zhangxingxia 已提交
1944
  ```js
Z
zhangxingxia 已提交
1945
  let stat = fileio.statSync(path)
Z
zengyawen 已提交
1946
  fileio.chown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
1947
      // do something
Z
zengyawen 已提交
1948 1949 1950 1951 1952 1953 1954 1955 1956 1957
  });
  ```


## fileio.chownSync<sup>7+</sup>

chownSync(path: string, uid: number, gid: number): void

以同步的方法基于文件路径改变文件所有者。

1958 1959
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1960
**参数:**
H
haonan_7 已提交
1961

Z
zengyawen 已提交
1962 1963 1964 1965 1966
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待改变文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
1967

Z
zhangxingxia 已提交
1968
**示例:**
H
haonan_7 已提交
1969

Z
zhangxingxia 已提交
1970
  ```js
Z
zhangxingxia 已提交
1971
  let stat = fileio.statSync(path)
Z
zengyawen 已提交
1972 1973 1974 1975 1976 1977 1978 1979
  fileio.chownSync(path, stat.uid, stat.gid);
  ```


## fileio.mkdtemp<sup>7+</sup>

mkdtemp(prefix: string): Promise&lt;string&gt;

H
haonan_7 已提交
1980
创建临时目录,使用Promise异步回调。
Z
zengyawen 已提交
1981

1982 1983
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1984
**参数:**
H
haonan_7 已提交
1985 1986 1987 1988

  | 参数名    | 类型     | 必填   | 说明                          |
  | ------ | ------ | ---- | --------------------------- |
  | prefix | string | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
Z
zengyawen 已提交
1989

Z
zhangxingxia 已提交
1990
**返回值:**
H
haonan_7 已提交
1991 1992 1993 1994

  | 类型                   | 说明         |
  | --------------------- | ---------- |
  | Promise&lt;string&gt; | Promise对象。返回生成的唯一目录路径。 |
Z
zengyawen 已提交
1995

Z
zhangxingxia 已提交
1996
**示例:**
H
haonan_7 已提交
1997

Z
zhangxingxia 已提交
1998 1999
  ```js
  fileio.mkdtemp(path + "XXXX").then(function(path){
H
haonan_7 已提交
2000
      console.info("mkdtemp succeed:"+ path);
Z
zhangxingxia 已提交
2001 2002 2003
  }).catch(function(err){
      console.info("mkdtemp failed with error:"+ err);
  });
Z
zengyawen 已提交
2004 2005 2006 2007 2008 2009 2010
  ```


## fileio.mkdtemp<sup>7+</sup>

mkdtemp(prefix: string, callback: AsyncCallback&lt;string&gt;): void

H
haonan_7 已提交
2011
创建临时目录,使用callback异步回调。
Z
zengyawen 已提交
2012

2013 2014
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2015
**参数:**
H
haonan_7 已提交
2016 2017 2018 2019 2020

  | 参数名      | 类型                          | 必填   | 说明                          |
  | -------- | --------------------------- | ---- | --------------------------- |
  | prefix   | string                      | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
  | callback | AsyncCallback&lt;string&gt; | 是    | 异步创建临时目录之后的回调。              |
Z
zengyawen 已提交
2021

Z
zhangxingxia 已提交
2022
**示例:**
H
haonan_7 已提交
2023

Z
zhangxingxia 已提交
2024
  ```js
Z
zengyawen 已提交
2025
  fileio.mkdtemp(path + "XXXX", function (err, res) {
Z
zhangxingxia 已提交
2026
      // do something
Z
zengyawen 已提交
2027 2028 2029 2030 2031 2032 2033 2034 2035 2036
  });
  ```


## fileio.mkdtempSync<sup>7+</sup>

mkdtempSync(prefix: string): string

以同步的方法创建临时目录。

2037 2038
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2039
**参数:**
H
haonan_7 已提交
2040 2041 2042 2043

  | 参数名    | 类型     | 必填   | 说明                          |
  | ------ | ------ | ---- | --------------------------- |
  | prefix | string | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
Z
zengyawen 已提交
2044

Z
zhangxingxia 已提交
2045
**返回值:**
H
haonan_7 已提交
2046 2047 2048 2049

  | 类型    | 说明         |
  | ------ | ---------- |
  | string | 产生的唯一目录路径。 |
Z
zengyawen 已提交
2050

Z
zhangxingxia 已提交
2051
**示例:**
H
haonan_7 已提交
2052

Z
zhangxingxia 已提交
2053
  ```js
Z
zengyawen 已提交
2054 2055 2056 2057 2058 2059 2060 2061
  let res = fileio.mkdtempSync(path + "XXXX");
  ```


## fileio.fchmod<sup>7+</sup>

fchmod(fd: number, mode: number): Promise&lt;void&gt;

H
haonan_7 已提交
2062
基于文件描述符改变文件权限,使用Promise异步回调。
Z
zengyawen 已提交
2063

2064 2065
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2066
**参数:**
H
haonan_7 已提交
2067 2068 2069 2070 2071

  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | fd   | number | 是    | 待改变文件的文件描述符。                             |
  | mode | number | 是    | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
Z
zengyawen 已提交
2072

Z
zhangxingxia 已提交
2073
**返回值:**
H
haonan_7 已提交
2074 2075 2076 2077

  | 类型                 | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
2078

Z
zhangxingxia 已提交
2079
**示例:**
H
haonan_7 已提交
2080

Z
zhangxingxia 已提交
2081
  ```js
2082 2083
  let fd = fileio.openSync(path);
  let mode = 0o700;
Z
zhangxingxia 已提交
2084
  fileio.fchmod(fd, mode).then(function() {
H
haonan_7 已提交
2085
      console.info("chmod succeed");
Z
zhangxingxia 已提交
2086 2087
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
2088 2089 2090 2091 2092 2093 2094 2095
  });
  ```


## fileio.fchmod<sup>7+</sup>

fchmod(fd: number, mode: number, callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2096
基于文件描述符改变文件权限,使用callback异步回调。
Z
zengyawen 已提交
2097

2098 2099
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2100
**参数:**
H
haonan_7 已提交
2101 2102 2103 2104 2105 2106

  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                          | 是    | 待改变文件的文件描述符。                             |
  | mode     | number                          | 是    | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
  | callback | AsyncCallback&nbsp;&lt;void&gt; | 是    | 异步改变文件权限之后的回调。                           |
Z
zengyawen 已提交
2107

Z
zhangxingxia 已提交
2108
**示例:**
H
haonan_7 已提交
2109

Z
zhangxingxia 已提交
2110
  ```js
2111 2112
  let fd = fileio.openSync(path);
  let mode = 0o700;
Z
zengyawen 已提交
2113
  fileio.fchmod(fd, mode, function (err) {
Z
zhangxingxia 已提交
2114
      // do something
Z
zengyawen 已提交
2115 2116 2117 2118 2119 2120
  });
  ```


## fileio.fchmodSync<sup>7+</sup>

2121
fchmodSync(fd: number, mode: number): void
Z
zengyawen 已提交
2122 2123 2124

以同步方法基于文件描述符改变文件权限。

2125 2126
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2127
**参数:**
H
haonan_7 已提交
2128 2129 2130 2131 2132

  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | fd   | number | 是    | 待改变文件的文件描述符。                             |
  | mode | number | 是    | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
Z
zengyawen 已提交
2133

Z
zhangxingxia 已提交
2134
**示例:**
H
haonan_7 已提交
2135

Z
zhangxingxia 已提交
2136
  ```js
2137 2138
  let fd = fileio.openSync(path);
  let mode = 0o700;
W
wangbo 已提交
2139
   fileio.fchmodSync(fd, mode);
Z
zengyawen 已提交
2140 2141 2142 2143 2144 2145 2146
  ```


## fileio.createStream<sup>7+</sup>

createStream(path: string, mode: string): Promise&lt;Stream&gt;

H
haonan_7 已提交
2147
基于文件路径打开文件流,使用Promise异步回调。
Z
zengyawen 已提交
2148

2149 2150
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2151
**参数:**
H
haonan_7 已提交
2152

Z
zengyawen 已提交
2153 2154 2155 2156
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
| mode   | string | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
Z
zengyawen 已提交
2157

Z
zhangxingxia 已提交
2158
**返回值:**
H
haonan_7 已提交
2159 2160 2161 2162

  | 类型                                | 说明        |
  | --------------------------------- | --------- |
  | Promise&lt;[Stream](#stream7)&gt; | Promise对象。返回文件流的结果。 |
Z
zengyawen 已提交
2163

Z
zhangxingxia 已提交
2164
**示例:**
H
haonan_7 已提交
2165

Z
zhangxingxia 已提交
2166 2167
  ```js
  fileio.createStream(path, "r+").then(function(stream){
H
haonan_7 已提交
2168
      console.info("createStream succeed");
Z
zhangxingxia 已提交
2169 2170 2171
  }).catch(function(err){
      console.info("createStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2172 2173 2174 2175 2176 2177 2178
  ```


## fileio.createStream<sup>7+</sup>

createStream(path: string, mode: string, callback: AsyncCallback&lt;Stream&gt;): void

H
haonan_7 已提交
2179
基于文件路径打开文件流,使用callback异步回调。
Z
zengyawen 已提交
2180

2181 2182
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2183
**参数:**
H
haonan_7 已提交
2184

Z
zengyawen 已提交
2185 2186 2187 2188 2189
| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                                  | 是   | 待打开文件的应用沙箱路径。                                   |
| mode     | string                                  | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
| callback | AsyncCallback&lt;[Stream](#stream7)&gt; | 是   | 异步打开文件流之后的回调。                                   |
Z
zengyawen 已提交
2190

Z
zhangxingxia 已提交
2191
**示例:**
H
haonan_7 已提交
2192

Z
zhangxingxia 已提交
2193
  ```js
Z
zhangxingxia 已提交
2194
  fileio.createStream(path, "r+", function(err, stream){
Z
zhangxingxia 已提交
2195
      // do something
Z
zengyawen 已提交
2196 2197 2198 2199 2200 2201 2202 2203 2204 2205
  });
  ```


## fileio.createStreamSync<sup>7+</sup>

createStreamSync(path: string, mode: string): Stream

以同步方法基于文件路径打开文件流。

2206 2207
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2208
**参数:**
H
haonan_7 已提交
2209

Z
zengyawen 已提交
2210 2211 2212 2213
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
| mode   | string | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
Z
zengyawen 已提交
2214

Z
zhangxingxia 已提交
2215
**返回值:**
H
haonan_7 已提交
2216 2217 2218 2219

  | 类型                | 说明        |
  | ------------------ | --------- |
  | [Stream](#stream7) | 返回文件流的结果。 |
Z
zengyawen 已提交
2220

Z
zhangxingxia 已提交
2221
**示例:**
H
haonan_7 已提交
2222

Z
zhangxingxia 已提交
2223
  ```js
Z
zengyawen 已提交
2224 2225 2226 2227 2228 2229 2230 2231
  let ss = fileio.createStreamSync(path, "r+");
  ```


## fileio.fdopenStream<sup>7+</sup>

fdopenStream(fd: number, mode: string): Promise&lt;Stream&gt;

H
haonan_7 已提交
2232
基于文件描述符打开文件流,使用Promise异步回调。
Z
zengyawen 已提交
2233

2234 2235
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2236
**参数:**
H
haonan_7 已提交
2237 2238 2239 2240 2241

  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | fd   | number | 是    | 待打开文件的文件描述符。                             |
  | mode | string | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
Z
zengyawen 已提交
2242

Z
zhangxingxia 已提交
2243
**返回值:**
H
haonan_7 已提交
2244 2245 2246 2247

  | 类型                               | 说明        |
  | --------------------------------- | --------- |
  | Promise&lt;[Stream](#stream7)&gt; | Promise对象。返回文件流的结果。 |
Z
zengyawen 已提交
2248

Z
zhangxingxia 已提交
2249
**示例:**
H
haonan_7 已提交
2250

Z
zhangxingxia 已提交
2251
  ```js
Z
zhangxingxia 已提交
2252 2253
  let fd = fileio.openSync(path);
  fileio.fdopenStream(fd, "r+").then(function(stream){
H
haonan_7 已提交
2254
      console.info("openStream succeed");
Z
zhangxingxia 已提交
2255 2256 2257
  }).catch(function(err){
      console.info("openStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2258 2259 2260 2261 2262 2263 2264
  ```


## fileio.fdopenStream<sup>7+</sup>

fdopenStream(fd: number, mode: string, callback: AsyncCallback&lt;Stream&gt;): void

H
haonan_7 已提交
2265
基于文件描述符打开文件流,使用callback异步回调。
Z
zengyawen 已提交
2266

2267 2268
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2269
**参数:**
H
haonan_7 已提交
2270 2271 2272 2273 2274 2275

  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                                   | 是    | 待打开文件的文件描述符。                             |
  | mode     | string                                   | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
  | callback | AsyncCallback&nbsp;&lt;[Stream](#stream7)&gt; | 是    | 异步打开文件流之后的回调。                            |
Z
zengyawen 已提交
2276

Z
zhangxingxia 已提交
2277
**示例:**
H
haonan_7 已提交
2278

Z
zhangxingxia 已提交
2279
  ```js
Z
zhangxingxia 已提交
2280 2281
  let fd = fileio.openSync(path);
  fileio.fdopenStream(fd, "r+", function (err, stream) {
Z
zhangxingxia 已提交
2282
      // do something
Z
zengyawen 已提交
2283 2284 2285 2286 2287 2288 2289 2290 2291 2292
  });
  ```


## fileio.fdopenStreamSync<sup>7+</sup>

fdopenStreamSync(fd: number, mode: string): Stream

以同步方法基于文件描述符打开文件流。

2293 2294
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2295
**参数:**
H
haonan_7 已提交
2296 2297 2298 2299 2300

  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | fd   | number | 是    | 待打开文件的文件描述符。                             |
  | mode | string | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
Z
zengyawen 已提交
2301

Z
zhangxingxia 已提交
2302
**返回值:**
H
haonan_7 已提交
2303 2304 2305 2306

  | 类型                | 说明        |
  | ------------------ | --------- |
  | [Stream](#stream7) | 返回文件流的结果。 |
Z
zengyawen 已提交
2307

Z
zhangxingxia 已提交
2308
**示例:**
H
haonan_7 已提交
2309

Z
zhangxingxia 已提交
2310
  ```js
Z
zhangxingxia 已提交
2311
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
2312 2313 2314 2315 2316 2317 2318 2319
  let ss = fileio.fdopenStreamSync(fd, "r+");
  ```


## fileio.fchown<sup>7+</sup>

fchown(fd: number, uid: number, gid: number): Promise&lt;void&gt;

H
haonan_7 已提交
2320
基于文件描述符改变文件所有者,使用Promise异步回调。
Z
zengyawen 已提交
2321

2322 2323
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2324
**参数:**
H
haonan_7 已提交
2325 2326 2327 2328 2329 2330

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待改变文件的文件描述符。 |
  | uid  | number | 是    | 文件所有者的UID。   |
  | gid  | number | 是    | 文件所有组的GID。   |
Z
zengyawen 已提交
2331

Z
zhangxingxia 已提交
2332
**返回值:**
H
haonan_7 已提交
2333 2334 2335 2336

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
2337

Z
zhangxingxia 已提交
2338
**示例:**
H
haonan_7 已提交
2339

Z
zhangxingxia 已提交
2340
  ```js
2341
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
2342
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2343
  fileio.fchown(fd, stat.uid, stat.gid).then(function() {
H
haonan_7 已提交
2344
      console.info("chown succeed");
Z
zhangxingxia 已提交
2345 2346
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
Z
zengyawen 已提交
2347 2348 2349 2350 2351 2352 2353 2354
  });
  ```


## fileio.fchown<sup>7+</sup>

fchown(fd: number, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2355
基于文件描述符改变文件所有者,使用callback异步回调。
Z
zengyawen 已提交
2356

2357 2358
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2359
**参数:**
H
haonan_7 已提交
2360 2361 2362 2363 2364 2365 2366

  | 参数名      | 类型                        | 必填   | 说明              |
  | -------- | ------------------------- | ---- | --------------- |
  | fd       | number                    | 是    | 待改变文件的文件描述符。    |
  | uid      | number                    | 是    | 文件所有者的UID。      |
  | gid      | number                    | 是    | 文件所有组的GID。      |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
2367

Z
zhangxingxia 已提交
2368
**示例:**
H
haonan_7 已提交
2369

Z
zhangxingxia 已提交
2370
  ```js
2371
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
2372
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
2373
  fileio.fchown(fd, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2374
      // do something
Z
zengyawen 已提交
2375 2376 2377 2378 2379 2380 2381 2382 2383 2384
  });
  ```


## fileio.fchownSync<sup>7+</sup>

fchownSync(fd: number, uid: number, gid: number): void

以同步方法基于文件描述符改变文件所有者。

2385 2386
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2387
**参数:**
H
haonan_7 已提交
2388 2389 2390 2391 2392 2393

  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待改变文件的文件描述符。 |
  | uid  | number | 是    | 文件所有者的UID。   |
  | gid  | number | 是    | 文件所有组的GID。   |
Z
zengyawen 已提交
2394

Z
zhangxingxia 已提交
2395
**示例:**
H
haonan_7 已提交
2396

Z
zhangxingxia 已提交
2397
  ```js
2398
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
2399
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
2400 2401 2402 2403 2404 2405 2406 2407
  fileio.fchownSync(fd, stat.uid, stat.gid);
  ```


## fileio.lchown<sup>7+</sup>

lchown(path: string, uid: number, gid: number): Promise&lt;void&gt;

H
haonan_7 已提交
2408
基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是符号链接所指向的实际文件,使用Promise异步回调。
Z
zengyawen 已提交
2409

2410 2411
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2412
**参数:**
H
haonan_7 已提交
2413

Z
zengyawen 已提交
2414 2415 2416 2417 2418
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待打开文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
2419

Z
zhangxingxia 已提交
2420
**返回值:**
H
haonan_7 已提交
2421 2422 2423 2424

  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
2425

Z
zhangxingxia 已提交
2426
**示例:**
H
haonan_7 已提交
2427

Z
zhangxingxia 已提交
2428
  ```js
Z
zengyawen 已提交
2429
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2430
  fileio.lchown(path, stat.uid, stat.gid).then(function() {
H
haonan_7 已提交
2431
      console.info("chown succeed");
Z
zhangxingxia 已提交
2432 2433 2434
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
2435 2436 2437 2438 2439 2440 2441
  ```


## fileio.lchown<sup>7+</sup>

lchown(path: string, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2442
基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件,使用callback异步回调。
Z
zengyawen 已提交
2443

2444 2445
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2446
**参数:**
H
haonan_7 已提交
2447

Z
zengyawen 已提交
2448 2449 2450 2451 2452 2453
| 参数名   | 类型                      | 必填 | 说明                           |
| -------- | ------------------------- | ---- | ------------------------------ |
| path     | string                    | 是   | 待打开文件的应用沙箱路径。     |
| uid      | number                    | 是   | 新的UID。                      |
| gid      | number                    | 是   | 新的GID。                      |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
2454

Z
zhangxingxia 已提交
2455
**示例:**
H
haonan_7 已提交
2456

Z
zhangxingxia 已提交
2457
  ```js
Z
zengyawen 已提交
2458 2459
  let stat = fileio.statSync(path);
  fileio.lchown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2460
      // do something
Z
zengyawen 已提交
2461 2462 2463 2464 2465 2466 2467 2468 2469 2470
  });
  ```


## fileio.lchownSync<sup>7+</sup>

lchownSync(path: string, uid: number, gid: number): void

以同步方法基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件。

2471 2472
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2473
**参数:**
H
haonan_7 已提交
2474

Z
zengyawen 已提交
2475 2476 2477 2478 2479
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待打开文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
2480

Z
zhangxingxia 已提交
2481
**示例:**
H
haonan_7 已提交
2482

Z
zhangxingxia 已提交
2483
  ```js
Z
zengyawen 已提交
2484 2485 2486 2487 2488 2489 2490 2491 2492
  let stat = fileio.statSync(path);
  fileio.lchownSync(path, stat.uid, stat.gid);
  ```


## fileio.createWatcher<sup>7+</sup>

createWatcher(filename: string, events: number, callback: AsyncCallback&lt;number&gt;): Watcher

H
haonan_7 已提交
2493
监听文件或者目录的变化,使用callback异步回调。
Z
zengyawen 已提交
2494

2495 2496
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2497
**参数:**
H
haonan_7 已提交
2498

Z
zengyawen 已提交
2499 2500 2501 2502 2503
| 参数名   | 类型                              | 必填 | 说明                                                         |
| -------- | --------------------------------- | ---- | ------------------------------------------------------------ |
| filename | string                            | 是   | 待监视文件的应用沙箱路径。                                   |
| events   | Number                            | 是   | -&nbsp;1:&nbsp;监听文件或者目录是否发生重命名。<br/>-&nbsp;2:监听文件或者目录内容的是否修改。<br/>-&nbsp;3:两者都有。 |
| callback | AsyncCallback&lt;number&nbsp;&gt; | 是   | 每发生变化一次,调用一次此函数。                             |
Z
zengyawen 已提交
2504

Z
zhangxingxia 已提交
2505
**返回值:**
H
haonan_7 已提交
2506 2507 2508 2509

  | 类型                  | 说明         |
  | -------------------- | ---------- |
  | [Watcher](#watcher7) | Promise对象。返回文件变化监听的实例。 |
Z
zengyawen 已提交
2510

Z
zhangxingxia 已提交
2511
**示例:**
H
haonan_7 已提交
2512

Z
zhangxingxia 已提交
2513
  ```js
Z
zhangxingxia 已提交
2514 2515
  let filename = path +"/test.txt";
  fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2516
     console.info("Monitoring times: "+number);
Z
zengyawen 已提交
2517
  });
Z
zhangxingxia 已提交
2518
  
Z
zengyawen 已提交
2519 2520 2521 2522 2523 2524 2525
  ```


## Readout

仅用于read方法,获取文件的读取结果。

2526 2527
**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。

H
HelloCrease 已提交
2528 2529 2530 2531 2532
| 名称        | 参数类型       | 可读   | 可写   | 说明                |
| --------- | ---------- | ---- | ---- | ----------------- |
| bytesRead | number     | 是    | 是    | 实际读取长度。           |
| offset    | number     | 是    | 是    | 读取数据相对于缓冲区首地址的偏移。 |
| buffer    | ArrayBufer | 是    | 是    | 保存读取数据的缓冲区。       |
Z
zengyawen 已提交
2533 2534 2535 2536 2537


## Stat

文件具体信息,在调用Stat的方法前,需要先通过[stat()](#fileiostat)方法(同步或异步)来构建一个Stat实例。
Z
zengyawen 已提交
2538

2539
**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。
Z
zengyawen 已提交
2540

Z
zengyawen 已提交
2541
### 属性
Z
zengyawen 已提交
2542

H
HelloCrease 已提交
2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556
| 名称     | 参数类型   | 可读   | 可写   | 说明                                       |
| ------ | ------ | ---- | ---- | ---------------------------------------- |
| dev    | number | 是    | 否    | 标识包含该文件的主设备号。                            |
| ino    | number | 是    | 否    | 标识该文件。通常同设备上的不同文件的INO不同。                 |
| mode   | number | 是    | 否    | 表示文件类型及权限,其首&nbsp;4&nbsp;位表示文件类型,后&nbsp;12&nbsp;位表示权限。各特征位的含义如下:<br/>-&nbsp;0o170000:可用于获取文件类型的掩码。<br/>-&nbsp;0o140000:文件是套接字。<br/>-&nbsp;0o120000:文件是符号链接。<br/>-&nbsp;0o100000:文件是一般文件。<br/>-&nbsp;0o060000:文件属于块设备。<br/>-&nbsp;0o040000:文件是目录。<br/>-&nbsp;0o020000:文件是字符设备。<br/>-&nbsp;0o010000:文件是具名管道,即FIFO。<br/>-&nbsp;0o0700:可用于获取用户权限的掩码。<br/>-&nbsp;0o0400:用户读,对于普通文件,所有者可读取文件;对于目录,所有者可读取目录项。<br/>-&nbsp;0o0200:用户写,对于普通文件,所有者可写入文件;对于目录,所有者可创建/删除目录项。<br/>-&nbsp;0o0100:用户执行,对于普通文件,所有者可执行文件;对于目录,所有者可在目录中搜索给定路径名。<br/>-&nbsp;0o0070:可用于获取用户组权限的掩码。<br/>-&nbsp;0o0040:用户组读,对于普通文件,所有用户组可读取文件;对于目录,所有用户组可读取目录项。<br/>-&nbsp;0o0020:用户组写,对于普通文件,所有用户组可写入文件;对于目录,所有用户组可创建/删除目录项。<br/>-&nbsp;0o0010:用户组执行,对于普通文件,所有用户组可执行文件;对于目录,所有用户组是否可在目录中搜索给定路径名。<br/>-&nbsp;0o0007:可用于获取其他用户权限的掩码。<br/>-&nbsp;0o0004:其他读,对于普通文件,其余用户可读取文件;对于目录,其他用户组可读取目录项。<br/>-&nbsp;0o0002:其他写,对于普通文件,其余用户可写入文件;对于目录,其他用户组可创建/删除目录项。<br/>-&nbsp;0o0001:其他执行,对于普通文件,其余用户可执行文件;对于目录,其他用户组可在目录中搜索给定路径名。 |
| nlink  | number | 是    | 否    | 文件的硬链接数。                                 |
| uid    | number | 是    | 否    | 文件所有者的ID。                                |
| gid    | number | 是    | 否    | 文件所有组的ID。                                |
| rdev   | number | 是    | 否    | 标识包含该文件的从设备号。                            |
| size   | 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秒的秒数。       |
Z
zengyawen 已提交
2557 2558


Z
zengyawen 已提交
2559
### isBlockDevice
Z
zengyawen 已提交
2560

Z
zengyawen 已提交
2561
isBlockDevice(): boolean
Z
zengyawen 已提交
2562

Z
zhangxingxia 已提交
2563
用于判断文件是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
Z
zengyawen 已提交
2564

2565 2566
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2567
**返回值:**
H
haonan_7 已提交
2568 2569 2570 2571

  | 类型      | 说明               |
  | ------- | ---------------- |
  | boolean | 表示文件是否是块特殊设备。 |
Z
zengyawen 已提交
2572

Z
zhangxingxia 已提交
2573
**示例:**
H
haonan_7 已提交
2574

Z
zhangxingxia 已提交
2575
  ```js
Z
zengyawen 已提交
2576 2577
  let isBLockDevice = fileio.statSync(path).isBlockDevice();
  ```
Z
zengyawen 已提交
2578 2579


Z
zengyawen 已提交
2580
### isCharacterDevice
Z
zengyawen 已提交
2581

Z
zengyawen 已提交
2582
isCharacterDevice(): boolean
Z
zengyawen 已提交
2583

Z
zhangxingxia 已提交
2584
用于判断文件是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
Z
zengyawen 已提交
2585

2586 2587
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2588
**返回值:**
H
haonan_7 已提交
2589 2590 2591 2592

  | 类型      | 说明                |
  | ------- | ----------------- |
  | boolean | 表示文件是否是字符特殊设备。 |
Z
zengyawen 已提交
2593

Z
zhangxingxia 已提交
2594
**示例:**
H
haonan_7 已提交
2595

Z
zhangxingxia 已提交
2596
  ```js
Z
zengyawen 已提交
2597 2598
  let isCharacterDevice = fileio.statSync(path).isCharacterDevice();
  ```
Z
zengyawen 已提交
2599 2600


Z
zengyawen 已提交
2601
### isDirectory
Z
zengyawen 已提交
2602

Z
zengyawen 已提交
2603
isDirectory(): boolean
Z
zengyawen 已提交
2604

Z
zhangxingxia 已提交
2605
用于判断文件是否是目录。
Z
zengyawen 已提交
2606

2607 2608
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2609
**返回值:**
H
haonan_7 已提交
2610 2611 2612 2613

  | 类型      | 说明            |
  | ------- | ------------- |
  | boolean | 表示文件是否是目录。 |
Z
zengyawen 已提交
2614

Z
zhangxingxia 已提交
2615
**示例:**
H
haonan_7 已提交
2616

Z
zhangxingxia 已提交
2617
  ```js
Z
zengyawen 已提交
2618
  let isDirectory = fileio.statSync(path).isDirectory(); 
Z
zengyawen 已提交
2619
  ```
Z
zengyawen 已提交
2620 2621


Z
zengyawen 已提交
2622
### isFIFO
Z
zengyawen 已提交
2623

Z
zengyawen 已提交
2624
isFIFO(): boolean
Z
zengyawen 已提交
2625

Z
zhangxingxia 已提交
2626
用于判断文件是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
2627

2628 2629
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2630
**返回值:**
H
haonan_7 已提交
2631 2632 2633 2634

  | 类型      | 说明                    |
  | ------- | --------------------- |
  | boolean | 表示文件是否是&nbsp;FIFO。 |
Z
zengyawen 已提交
2635

Z
zhangxingxia 已提交
2636
**示例:**
H
haonan_7 已提交
2637

Z
zhangxingxia 已提交
2638
  ```js
Z
zengyawen 已提交
2639
  let isFIFO = fileio.statSync(path).isFIFO(); 
Z
zengyawen 已提交
2640
  ```
Z
zengyawen 已提交
2641 2642


Z
zengyawen 已提交
2643
### isFile
Z
zengyawen 已提交
2644

Z
zengyawen 已提交
2645
isFile(): boolean
Z
zengyawen 已提交
2646

Z
zhangxingxia 已提交
2647
用于判断文件是否是普通文件。
Z
zengyawen 已提交
2648

2649 2650
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2651
**返回值:**
H
haonan_7 已提交
2652 2653 2654 2655

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示文件是否是普通文件。 |
Z
zengyawen 已提交
2656

Z
zhangxingxia 已提交
2657
**示例:**
H
haonan_7 已提交
2658

Z
zhangxingxia 已提交
2659
  ```js
Z
zhangxingxia 已提交
2660
  let isFile = fileio.statSync(path).isFile();
Z
zengyawen 已提交
2661
  ```
Z
zengyawen 已提交
2662 2663


Z
zengyawen 已提交
2664
### isSocket
Z
zengyawen 已提交
2665

Z
zengyawen 已提交
2666
isSocket(): boolean
Z
zengyawen 已提交
2667

Z
zhangxingxia 已提交
2668
用于判断文件是否是套接字。
Z
zengyawen 已提交
2669

2670 2671
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2672
**返回值:**
H
haonan_7 已提交
2673 2674 2675 2676

  | 类型      | 说明             |
  | ------- | -------------- |
  | boolean | 表示文件是否是套接字。 |
Z
zengyawen 已提交
2677

Z
zhangxingxia 已提交
2678
**示例:**
H
haonan_7 已提交
2679

Z
zhangxingxia 已提交
2680
  ```js
Z
zengyawen 已提交
2681 2682
  let isSocket = fileio.statSync(path).isSocket(); 
  ```
Z
zengyawen 已提交
2683 2684


Z
zengyawen 已提交
2685
### isSymbolicLink
Z
zengyawen 已提交
2686

Z
zengyawen 已提交
2687
isSymbolicLink(): boolean
Z
zengyawen 已提交
2688

Z
zhangxingxia 已提交
2689
用于判断文件是否是符号链接。
Z
zengyawen 已提交
2690

2691 2692
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2693
**返回值:**
H
haonan_7 已提交
2694 2695 2696 2697

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示文件是否是符号链接。 |
Z
zengyawen 已提交
2698

Z
zhangxingxia 已提交
2699
**示例:**
H
haonan_7 已提交
2700

Z
zhangxingxia 已提交
2701
  ```js
Z
zengyawen 已提交
2702 2703
  let isSymbolicLink = fileio.statSync(path).isSymbolicLink(); 
  ```
Z
zengyawen 已提交
2704 2705


Z
zengyawen 已提交
2706 2707 2708 2709 2710 2711 2712
## Watcher<sup>7+</sup>

Watcher是文件变化监听的实例,调用Watcher.stop()方法(同步或异步)来停止文件监听。


### stop<sup>7+</sup>

2713
stop(): Promise&lt;void&gt;
Z
zengyawen 已提交
2714

H
haonan_7 已提交
2715
关闭watcher监听,使用Promise异步回调。
Z
zengyawen 已提交
2716

2717 2718
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2719
**示例:**
H
haonan_7 已提交
2720

Z
zhangxingxia 已提交
2721
  ```js
Z
zhangxingxia 已提交
2722
  let filename = path +"/test.txt";
Z
zhangxingxia 已提交
2723
  let watcher = await fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2724
      console.info("Monitoring times: "+number);
Z
zhangxingxia 已提交
2725 2726
  });
  watcher.stop().then(function(){
Z
zhangxingxia 已提交
2727
       console.info("close watcher succeed");
Z
zhangxingxia 已提交
2728
  });
Z
zengyawen 已提交
2729 2730 2731 2732 2733
  ```


### stop<sup>7+</sup>

2734
stop(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
2735

H
haonan_7 已提交
2736
关闭watcher监听,使用callback异步回调。
Z
zengyawen 已提交
2737

2738 2739
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2740
**参数:**
H
haonan_7 已提交
2741 2742 2743 2744

  | 参数名      | 类型                        | 必填   | 说明                     |
  | -------- | ------------------------- | ---- | ---------------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 以异步方法关闭watcher监听之后的回调。 |
Z
zengyawen 已提交
2745

Z
zhangxingxia 已提交
2746
**示例:**
H
haonan_7 已提交
2747

Z
zhangxingxia 已提交
2748
  ```js
Z
zhangxingxia 已提交
2749
  let filename = path +"/test.txt";
Z
zhangxingxia 已提交
2750
  let watcher = await fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2751
      console.info("Monitoring times: "+number);
Z
zengyawen 已提交
2752
  });
Z
zhangxingxia 已提交
2753 2754 2755
  watcher.stop(function(){
      console.info("close watcher succeed");
  })
Z
zengyawen 已提交
2756 2757 2758
  ```


Z
zhangxingxia 已提交
2759
## Stream
Z
zengyawen 已提交
2760

Z
zengyawen 已提交
2761 2762 2763 2764 2765 2766 2767
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。


### close<sup>7+</sup>

close(): Promise&lt;void&gt;

H
haonan_7 已提交
2768
关闭文件流,使用Promise异步回调。
Z
zengyawen 已提交
2769

2770 2771
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2772
**返回值:**
H
haonan_7 已提交
2773 2774 2775 2776

  | 类型                  | 说明            |
  | ------------------- | ------------- |
  | Promise&lt;void&gt; | Promise对象。返回表示异步关闭文件流的结果。 |
Z
zengyawen 已提交
2777

Z
zhangxingxia 已提交
2778
**示例:**
H
haonan_7 已提交
2779

Z
zhangxingxia 已提交
2780
  ```js
Z
zhangxingxia 已提交
2781
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2782
  ss.close().then(function(){
H
haonan_7 已提交
2783
      console.info("close fileStream succeed");
Z
zhangxingxia 已提交
2784 2785 2786
  }).catch(function(err){
      console.info("close fileStream  failed with error:"+ err);
  });
Z
zengyawen 已提交
2787 2788 2789 2790 2791 2792 2793
  ```


### close<sup>7+</sup>

close(callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2794
异步关闭文件流,使用callback异步回调。
Z
zengyawen 已提交
2795

2796 2797
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2798
**参数:**
H
haonan_7 已提交
2799 2800 2801 2802

  | 参数名      | 类型                        | 必填   | 说明            |
  | -------- | ------------------------- | ---- | ------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件流之后的回调。 |
Z
zengyawen 已提交
2803

Z
zhangxingxia 已提交
2804
**示例:**
H
haonan_7 已提交
2805

Z
zhangxingxia 已提交
2806
  ```js
Z
zhangxingxia 已提交
2807
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2808
  ss.close(function (err) {
Z
zhangxingxia 已提交
2809
      // do something
Z
zengyawen 已提交
2810 2811
  });
  ```
Z
zengyawen 已提交
2812 2813


2814
### closeSync
Z
zengyawen 已提交
2815

Z
zengyawen 已提交
2816
closeSync(): void
Z
zengyawen 已提交
2817

Z
zengyawen 已提交
2818
同步关闭文件流。
Z
zengyawen 已提交
2819

2820 2821
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2822
**示例:**
H
haonan_7 已提交
2823

Z
zhangxingxia 已提交
2824
  ```js
Z
zhangxingxia 已提交
2825
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2826 2827
  ss.closeSync();
  ```
Z
zengyawen 已提交
2828 2829


Z
zengyawen 已提交
2830 2831 2832 2833
### flush<sup>7+</sup>

flush(): Promise&lt;void&gt;

H
haonan_7 已提交
2834
刷新文件流,使用Promise异步回调。
Z
zengyawen 已提交
2835

2836 2837
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2838
**返回值:**
H
haonan_7 已提交
2839 2840 2841 2842

  | 类型                  | 说明            |
  | ------------------- | ------------- |
  | Promise&lt;void&gt; | Promise对象。返回表示异步刷新文件流的结果。 |
Z
zengyawen 已提交
2843

Z
zhangxingxia 已提交
2844
**示例:**
H
haonan_7 已提交
2845

Z
zhangxingxia 已提交
2846
  ```js
Z
zhangxingxia 已提交
2847
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2848
  ss.flush().then(function (){
H
haonan_7 已提交
2849
      console.info("flush succeed");
Z
zhangxingxia 已提交
2850 2851 2852
  }).catch(function(err){
      console.info("flush failed with error:"+ err);
  });
Z
zengyawen 已提交
2853 2854 2855 2856 2857 2858 2859
  ```


### flush<sup>7+</sup>

flush(callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2860
异步刷新文件流,使用callback异步回调。
Z
zengyawen 已提交
2861

2862 2863
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2864
**参数:**
H
haonan_7 已提交
2865 2866 2867 2868

  | 参数名      | 类型                        | 必填   | 说明             |
  | -------- | ------------------------- | ---- | -------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步刷新文件流后的回调函数。 |
Z
zengyawen 已提交
2869

Z
zhangxingxia 已提交
2870
**示例:**
H
haonan_7 已提交
2871

Z
zhangxingxia 已提交
2872
  ```js
Z
zhangxingxia 已提交
2873
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2874
  ss.flush(function (err) {
Z
zhangxingxia 已提交
2875
      // do something
Z
zengyawen 已提交
2876 2877 2878 2879
  });
  ```


Z
zengyawen 已提交
2880
### flushSync<sup>7+</sup>
Z
zengyawen 已提交
2881

Z
zengyawen 已提交
2882
flushSync(): void
Z
zengyawen 已提交
2883

Z
zengyawen 已提交
2884
同步刷新文件流。
Z
zengyawen 已提交
2885

2886 2887
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2888
**示例:**
H
haonan_7 已提交
2889

Z
zhangxingxia 已提交
2890
  ```js
Z
zhangxingxia 已提交
2891
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2892 2893
  ss.flushSync();
  ```
Z
zengyawen 已提交
2894 2895


Z
zengyawen 已提交
2896 2897
### write<sup>7+</sup>

2898 2899 2900 2901 2902 2903
write(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
2904

H
haonan_7 已提交
2905
将数据写入流文件,使用Promise异步回调。
Z
zengyawen 已提交
2906

2907 2908
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2909
**参数:**
H
haonan_7 已提交
2910 2911 2912 2913 2914

  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
  | options | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。  |
Z
zengyawen 已提交
2915

Z
zhangxingxia 已提交
2916
**返回值:**
H
haonan_7 已提交
2917 2918 2919 2920

  | 类型                    | 说明       |
  | --------------------- | -------- |
  | Promise&lt;number&gt; | Promise对象。返回实际写入的长度。 |
Z
zengyawen 已提交
2921

Z
zhangxingxia 已提交
2922
**示例:**
H
haonan_7 已提交
2923

Z
zhangxingxia 已提交
2924
  ```js
Z
zhangxingxia 已提交
2925
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2926
  ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
H
haonan_7 已提交
2927
      console.info("write succeed and size is:"+ number);
Z
zhangxingxia 已提交
2928 2929 2930
  }).catch(function(err){
      console.info("write failed with error:"+ err);
  });
Z
zengyawen 已提交
2931 2932 2933 2934 2935
  ```


### write<sup>7+</sup>

2936 2937 2938 2939 2940 2941
write(buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
2942

H
haonan_7 已提交
2943
将数据写入流文件,使用callback异步回调。
Z
zengyawen 已提交
2944

2945 2946
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2947
**参数:**
H
haonan_7 已提交
2948 2949 2950 2951 2952 2953

  | 参数名   | 类型                            | 必填 | 说明                                                         |
  | -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
  | buffer   | ArrayBuffer&nbsp;\|&nbsp;string | 是   | 待写入文件的数据,可来自缓冲区或字符串。                     |
  | options  | Object                          | 否   | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。 |
  | callback | AsyncCallback&lt;number&gt;     | 是   | 异步写入完成后执行的回调函数。                               |
Z
zengyawen 已提交
2954

Z
zhangxingxia 已提交
2955
**示例:**
H
haonan_7 已提交
2956

Z
zhangxingxia 已提交
2957
  ```js
Z
zhangxingxia 已提交
2958
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2959
  ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
Z
zhangxingxia 已提交
2960
      if (bytesWritten) {
Z
zhangxingxia 已提交
2961
         // do something
H
haonan_7 已提交
2962
         console.info("write succeed and size is:"+ bytesWritten);
Z
zengyawen 已提交
2963 2964 2965 2966 2967
      }
  });
  ```


Z
zengyawen 已提交
2968
### writeSync<sup>7+</sup>
Z
zengyawen 已提交
2969

2970 2971 2972 2973 2974 2975
writeSync(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
2976

Z
zengyawen 已提交
2977
以同步方法将数据写入流文件。
Z
zengyawen 已提交
2978

2979 2980
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2981
**参数:**
H
haonan_7 已提交
2982 2983 2984 2985 2986

  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
  | options | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。  |
Z
zengyawen 已提交
2987

Z
zhangxingxia 已提交
2988
**返回值:**
H
haonan_7 已提交
2989 2990 2991 2992

  | 类型     | 说明       |
  | ------ | -------- |
  | number | 实际写入的长度。 |
Z
zengyawen 已提交
2993

Z
zhangxingxia 已提交
2994
**示例:**
H
haonan_7 已提交
2995

Z
zhangxingxia 已提交
2996
  ```js
Z
zhangxingxia 已提交
2997
  let ss= fileio.createStreamSync(path,"r+");
Z
zengyawen 已提交
2998 2999 3000 3001 3002 3003
  let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});
  ```


### read<sup>7+</sup>

3004 3005 3006 3007 3008
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
3009

H
haonan_7 已提交
3010
从流文件读取数据,使用Promise异步回调。
Z
zengyawen 已提交
3011

3012 3013
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3014
**参数:**
H
haonan_7 已提交
3015 3016 3017 3018 3019

  | 参数名     | 类型          | 必填   | 说明                                       |
  | ------- | ----------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer | 是    | 用于读取文件的缓冲区。                              |
  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
Z
zengyawen 已提交
3020

Z
zhangxingxia 已提交
3021
**返回值:**
H
haonan_7 已提交
3022 3023 3024 3025

  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
  | Promise&lt;[ReadOut](#readout)&gt; | Promise对象。返回读取的结果。 |
Z
zengyawen 已提交
3026

Z
zhangxingxia 已提交
3027
**示例:**
H
haonan_7 已提交
3028

Z
zhangxingxia 已提交
3029
  ```js
Z
zhangxingxia 已提交
3030
  let ss = fileio.createStreamSync(path, "r+");
3031
  ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readOut){
H
haonan_7 已提交
3032
      console.info("read data succeed");
W
wangbo 已提交
3033
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
3034 3035 3036
  }).catch(function(err){
      console.info("read data failed with error:"+ err);
  });
Z
zengyawen 已提交
3037 3038 3039 3040 3041
  ```


### read<sup>7+</sup>

3042 3043 3044 3045 3046
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
3047

H
haonan_7 已提交
3048
从流文件读取数据,使用callback异步回调。
Z
zengyawen 已提交
3049

3050 3051
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3052
**参数:**
H
haonan_7 已提交
3053 3054 3055 3056 3057 3058

  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | buffer   | ArrayBuffer                              | 是    | 用于读取文件的缓冲区。                              |
  | options  | Object                                   | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
  | callback | AsyncCallback&lt;[ReadOut](#readout)&gt; | 是    | 异步从流文件读取数据之后的回调。                         |
Z
zengyawen 已提交
3059

Z
zhangxingxia 已提交
3060
**示例:**
H
haonan_7 已提交
3061

Z
zhangxingxia 已提交
3062
  ```js
Z
zhangxingxia 已提交
3063
  let ss = fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
3064
  ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
Z
zhangxingxia 已提交
3065
      if (readOut) {
H
haonan_7 已提交
3066
          console.info("read data succeed");
Z
zhangxingxia 已提交
3067
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
3068 3069
      }
  });
Z
zengyawen 已提交
3070
  ```
Z
zengyawen 已提交
3071 3072


Z
zengyawen 已提交
3073
### readSync<sup>7+</sup>
Z
zengyawen 已提交
3074

3075 3076 3077 3078 3079
readSync(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): number
Z
zengyawen 已提交
3080 3081 3082

以同步方法从流文件读取数据。

3083 3084
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3085
**参数:**
Z
zhangxingxia 已提交
3086

H
haonan_7 已提交
3087 3088 3089 3090
  | 参数名     | 类型          | 必填   | 说明                                       |
  | ------- | ----------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer | 是    | 用于读取文件的缓冲区。                              |
  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
Z
zhangxingxia 已提交
3091

Z
zhangxingxia 已提交
3092
**返回值:**
Z
zhangxingxia 已提交
3093

H
haonan_7 已提交
3094 3095 3096
  | 类型     | 说明       |
  | ------ | -------- |
  | number | 实际读取的长度。 |
Z
zhangxingxia 已提交
3097

Z
zhangxingxia 已提交
3098
**示例:**
H
haonan_7 已提交
3099

Z
zhangxingxia 已提交
3100
  ```js
Z
zhangxingxia 已提交
3101
  let ss = fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
3102
  let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});
Z
zengyawen 已提交
3103
  ```
Z
zengyawen 已提交
3104 3105


Z
zengyawen 已提交
3106
## Dir
Z
zengyawen 已提交
3107

3108
管理目录,在调用Dir的方法前,需要先通过opendir方法(同步或异步)来构建一个Dir实例。
Z
zengyawen 已提交
3109 3110 3111 3112 3113 3114


### read

read(): Promise&lt;Dirent&gt;

H
haonan_7 已提交
3115
读取下一个目录项,使用Promise异步回调。
Z
zengyawen 已提交
3116

3117 3118
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3119
**返回值:**
H
haonan_7 已提交
3120 3121 3122 3123

  | 类型                               | 说明            |
  | -------------------------------- | ------------- |
  | Promise&lt;[Dirent](#dirent)&gt; | Promise对象。返回表示异步读取目录项的结果。 |
Z
zengyawen 已提交
3124

Z
zhangxingxia 已提交
3125
**示例:**
H
haonan_7 已提交
3126

Z
zhangxingxia 已提交
3127
  ```js
W
wangbo 已提交
3128
  let dir = fileio.opendirSync(path);
Z
zhangxingxia 已提交
3129
  dir.read().then(function (dirent){
H
haonan_7 已提交
3130
      console.log("read succeed:"+JSON.stringify(dirent));
Z
zhangxingxia 已提交
3131 3132 3133
  }).catch(function(err){
      console.info("read failed with error:"+ err);
  });
Z
zengyawen 已提交
3134 3135 3136 3137 3138 3139 3140
  ```


### read

read(callback: AsyncCallback&lt;Dirent&gt;): void

H
haonan_7 已提交
3141
读取下一个目录项,使用callback异步回调。
Z
zengyawen 已提交
3142

3143 3144
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3145
**参数:**
H
haonan_7 已提交
3146 3147 3148 3149

  | 参数名      | 类型                                     | 必填   | 说明               |
  | -------- | -------------------------------------- | ---- | ---------------- |
  | callback | AsyncCallback&lt;[Dirent](#dirent)&gt; | 是    | 异步读取下一个目录项之后的回调。 |
Z
zengyawen 已提交
3150

Z
zhangxingxia 已提交
3151
**示例:**
H
haonan_7 已提交
3152

Z
zhangxingxia 已提交
3153
  ```js
W
wangbo 已提交
3154
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3155
  dir.read(function (err, dirent) {
Z
zhangxingxia 已提交
3156
      if (dirent) {
Z
zhangxingxia 已提交
3157
          // do something
H
haonan_7 已提交
3158
          console.log("read succeed:"+JSON.stringify(dirent));
Z
zengyawen 已提交
3159 3160 3161
      }
  });
  ```
Z
zengyawen 已提交
3162 3163


Z
zengyawen 已提交
3164
### readSync
Z
zengyawen 已提交
3165

Z
zengyawen 已提交
3166
readSync(): Dirent
Z
zengyawen 已提交
3167

Z
zengyawen 已提交
3168
同步读取下一个目录项。
Z
zengyawen 已提交
3169

3170 3171
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3172
**返回值:**
H
haonan_7 已提交
3173 3174 3175 3176

  | 类型                | 说明       |
  | ----------------- | -------- |
  | [Dirent](#dirent) | 表示一个目录项。 |
Z
zengyawen 已提交
3177

Z
zhangxingxia 已提交
3178
**示例:**
H
haonan_7 已提交
3179

Z
zhangxingxia 已提交
3180
  ```js
W
wangbo 已提交
3181
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3182 3183
  let dirent = dir.readSync();
  ```
Z
zengyawen 已提交
3184 3185


W
wangbo 已提交
3186 3187 3188 3189 3190 3191 3192 3193 3194
### close<sup>7+</sup>

close(): Promise&lt;void&gt;

异步关闭目录,使用promise形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。

**系统能力**:SystemCapability.FileManagement.File.FileIO

**示例:**
H
haonan_7 已提交
3195

W
wangbo 已提交
3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212
  ```js
  let dir = fileio.opendirSync(path);
  dir.close().then(function(err){
      console.info("close dir successfully");
  });
  ```


  ### close<sup>7+</sup>

close(callback: AsyncCallback&lt;void&gt;): void

异步关闭目录,使用callback形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。

**系统能力**:SystemCapability.FileManagement.File.FileIO

**示例:**
H
haonan_7 已提交
3213

W
wangbo 已提交
3214 3215 3216 3217 3218 3219 3220 3221
  ```js
  let dir = fileio.opendirSync(path);
  dir.close(function(err){
      console.info("close dir successfully");
  });
  ```


Z
zengyawen 已提交
3222
### closeSync
Z
zengyawen 已提交
3223

Z
zengyawen 已提交
3224
closeSync(): void
Z
zengyawen 已提交
3225

Z
zengyawen 已提交
3226
用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
Z
zengyawen 已提交
3227

3228 3229
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3230
**示例:**
H
haonan_7 已提交
3231

Z
zhangxingxia 已提交
3232
  ```js
W
wangbo 已提交
3233
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3234 3235
  dir.closeSync();
  ```
Z
zengyawen 已提交
3236 3237


Z
zengyawen 已提交
3238
## Dirent
Z
zengyawen 已提交
3239

Z
zengyawen 已提交
3240
在调用Dirent的方法前,需要先通过[dir.read()](#read)方法(同步或异步)来构建一个Dirent实例。
Z
zengyawen 已提交
3241

3242
**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。
Z
zengyawen 已提交
3243

Z
zengyawen 已提交
3244
### 属性
Z
zengyawen 已提交
3245

H
HelloCrease 已提交
3246 3247 3248
| 名称   | 参数类型   | 可读   | 可写   | 说明      |
| ---- | ------ | ---- | ---- | ------- |
| name | string | 是    | 否    | 目录项的名称。 |
Z
zengyawen 已提交
3249 3250


Z
zengyawen 已提交
3251
### isBlockDevice
Z
zengyawen 已提交
3252

Z
zengyawen 已提交
3253
isBlockDevice(): boolean
Z
zengyawen 已提交
3254

Z
zhangxingxia 已提交
3255
用于判断当前目录项是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
Z
zengyawen 已提交
3256

3257 3258
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3259
**返回值:**
H
haonan_7 已提交
3260 3261 3262 3263

  | 类型      | 说明               |
  | ------- | ---------------- |
  | boolean | 表示当前目录项是否是块特殊设备。 |
Z
zengyawen 已提交
3264

Z
zhangxingxia 已提交
3265
**示例:**
H
haonan_7 已提交
3266

Z
zhangxingxia 已提交
3267
  ```js
W
wangbo 已提交
3268
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3269 3270
  let isBLockDevice = dir.readSync().isBlockDevice();
  ```
Z
zengyawen 已提交
3271 3272


Z
zengyawen 已提交
3273
### isCharacterDevice
Z
zengyawen 已提交
3274

Z
zengyawen 已提交
3275
isCharacterDevice(): boolean
Z
zengyawen 已提交
3276

Z
zhangxingxia 已提交
3277
用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
Z
zengyawen 已提交
3278

3279 3280
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3281
**返回值:**
H
haonan_7 已提交
3282 3283 3284 3285

  | 类型      | 说明                |
  | ------- | ----------------- |
  | boolean | 表示当前目录项是否是字符特殊设备。 |
Z
zengyawen 已提交
3286

Z
zhangxingxia 已提交
3287
**示例:**
H
haonan_7 已提交
3288

Z
zhangxingxia 已提交
3289
  ```js
W
wangbo 已提交
3290
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3291 3292
  let isCharacterDevice = dir.readSync().isCharacterDevice(); 
  ```
Z
zengyawen 已提交
3293 3294


Z
zengyawen 已提交
3295
### isDirectory
Z
zengyawen 已提交
3296

Z
zengyawen 已提交
3297
isDirectory(): boolean
Z
zengyawen 已提交
3298

Z
zhangxingxia 已提交
3299
用于判断当前目录项是否是目录。
Z
zengyawen 已提交
3300

3301 3302
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3303
**返回值:**
H
haonan_7 已提交
3304 3305 3306 3307

  | 类型      | 说明            |
  | ------- | ------------- |
  | boolean | 表示当前目录项是否是目录。 |
Z
zengyawen 已提交
3308

Z
zhangxingxia 已提交
3309
**示例:**
H
haonan_7 已提交
3310

Z
zhangxingxia 已提交
3311
  ```js
W
wangbo 已提交
3312
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3313 3314
  let isDirectory = dir.readSync().isDirectory(); 
  ```
Z
zengyawen 已提交
3315 3316


Z
zengyawen 已提交
3317
### isFIFO
Z
zengyawen 已提交
3318

Z
zengyawen 已提交
3319
isFIFO(): boolean
Z
zengyawen 已提交
3320

Z
zhangxingxia 已提交
3321
用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
3322

3323 3324
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3325
**返回值:**
H
haonan_7 已提交
3326 3327 3328 3329

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是FIFO。 |
Z
zengyawen 已提交
3330

Z
zhangxingxia 已提交
3331
**示例:**
H
haonan_7 已提交
3332

Z
zhangxingxia 已提交
3333
  ```js
W
wangbo 已提交
3334
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3335 3336
  let isFIFO = dir.readSync().isFIFO(); 
  ```
Z
zengyawen 已提交
3337 3338


Z
zengyawen 已提交
3339
### isFile
Z
zengyawen 已提交
3340

Z
zengyawen 已提交
3341
isFile(): boolean
Z
zengyawen 已提交
3342

Z
zhangxingxia 已提交
3343
用于判断当前目录项是否是普通文件。
Z
zengyawen 已提交
3344

3345 3346
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3347
**返回值:**
H
haonan_7 已提交
3348 3349 3350 3351

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是普通文件。 |
Z
zengyawen 已提交
3352

Z
zhangxingxia 已提交
3353
**示例:**
H
haonan_7 已提交
3354

Z
zhangxingxia 已提交
3355
  ```js
W
wangbo 已提交
3356
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3357 3358
  let isFile = dir.readSync().isFile(); 
  ```
Z
zengyawen 已提交
3359 3360


Z
zengyawen 已提交
3361
### isSocket
Z
zengyawen 已提交
3362

Z
zengyawen 已提交
3363
isSocket(): boolean
Z
zengyawen 已提交
3364

Z
zhangxingxia 已提交
3365
用于判断当前目录项是否是套接字。
Z
zengyawen 已提交
3366

3367 3368
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3369
**返回值:**
H
haonan_7 已提交
3370 3371 3372 3373

  | 类型      | 说明             |
  | ------- | -------------- |
  | boolean | 表示当前目录项是否是套接字。 |
Z
zengyawen 已提交
3374

Z
zhangxingxia 已提交
3375
**示例:**
H
haonan_7 已提交
3376

Z
zhangxingxia 已提交
3377
  ```js
3378
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3379 3380
  let isSocket = dir.readSync().isSocket(); 
  ```
Z
zengyawen 已提交
3381 3382


Z
zengyawen 已提交
3383
### isSymbolicLink
Z
zengyawen 已提交
3384

Z
zengyawen 已提交
3385
isSymbolicLink(): boolean
Z
zengyawen 已提交
3386

Z
zhangxingxia 已提交
3387
用于判断当前目录项是否是符号链接。
Z
zengyawen 已提交
3388

3389 3390
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3391
**返回值:**
H
haonan_7 已提交
3392 3393 3394 3395

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是符号链接。 |
Z
zengyawen 已提交
3396

Z
zhangxingxia 已提交
3397
**示例:**
H
haonan_7 已提交
3398

Z
zhangxingxia 已提交
3399
  ```js
W
wangbo 已提交
3400
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3401 3402
  let isSymbolicLink = dir.readSync().isSymbolicLink();
  ```