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 20 21
使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:
 ```js
 import featureAbility from '@ohos.ability.featureAbility';
 let context = featureAbility.getContext();
W
wangbo 已提交
22 23 24 25
 let path = '';
 context.getFilesDir().then((data) => {
      path = data;
 })
Z
zhangxingxia 已提交
26
 ```
Z
zengyawen 已提交
27 28


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

stat(path: string): Promise<Stat>

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

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

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

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

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

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

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

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


## fileio.stat

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

Z
zengyawen 已提交
177

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
241 242 243 244 245
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
246

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
459 460 461 462
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
463

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
491 492 493 494 495
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
496

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

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


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

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

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

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

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

Z
zengyawen 已提交
516 517 518 519
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
520

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

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


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

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

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

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

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

Z
zengyawen 已提交
538 539 540
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
541
| 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 已提交
542
| 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 已提交
543

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
571 572 573
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                          | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
574
| 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 已提交
575 576
| 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 已提交
577

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

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


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

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

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

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

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

Z
zengyawen 已提交
597 598 599
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
600
| 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 已提交
601
| 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 已提交
602

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

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

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

Z
zhangxingxia 已提交
611
  ```js
W
wangbo 已提交
612 613 614 615 616 617 618 619 620
  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 已提交
621
  ```
Z
zengyawen 已提交
622 623


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
684

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

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


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

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

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

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

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

  | 参数名     | 类型          | 必填   | 说明                                       |
  | ------- | ----------- | ---- | ---------------------------------------- |
  | 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 已提交
718

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

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

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

Z
zhangxingxia 已提交
727
  ```js
Z
zengyawen 已提交
728 729 730 731 732 733 734 735 736 737
  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 已提交
738
删除目录,使用Promise异步回调。
Z
zengyawen 已提交
739

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

以同步方法删除目录。

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

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

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

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

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


## fileio.unlink

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

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

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

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

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

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

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

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

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


## fileio.unlink

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

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

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

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

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

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

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


## fileio.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

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

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

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

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

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


## fileio.write

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

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

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

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

  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
907

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

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

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

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


## fileio.write

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

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

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

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

  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
947

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

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


## fileio.writeSync

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

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

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

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

  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
980

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

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

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

Z
zhangxingxia 已提交
989
  ```js
Z
zengyawen 已提交
990 991 992 993 994 995 996 997 998
  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 已提交
999
计算文件的哈希值,使用Promise异步回调。
Z
zengyawen 已提交
1000

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

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

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

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

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

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

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


## fileio.hash

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

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

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

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
1064 1065
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1066
| path   | string | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1067
| 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 已提交
1068

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
1096 1097
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1098
| path     | string                    | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1099 1100
| 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 已提交
1101

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

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


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

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

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

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

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

Z
zengyawen 已提交
1121 1122
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1123
| path   | string | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1124
| 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 已提交
1125

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

fstatSync(fd: number): Stat

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
1398 1399 1400 1401
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
1402

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
1463 1464 1465 1466
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
1467

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

lstatSync(path:string): Stat

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

以同步方法重命名文件。

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

fsyncSync(fd: number): void

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

fdatasyncSync(fd: number): void

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

mkdtempSync(prefix: string): string

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

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

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

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

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

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

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

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


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

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

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

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

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

  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2071

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

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

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

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


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

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

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

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

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

  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
2106

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

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


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

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

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

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

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

  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2132

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

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


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

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

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

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

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

Z
zengyawen 已提交
2152 2153 2154 2155
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
2156

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

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

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

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


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

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

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

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

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

Z
zengyawen 已提交
2184 2185 2186 2187 2188
| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
2189

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

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


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

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

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

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

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

Z
zengyawen 已提交
2209 2210 2211 2212
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
2213

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

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

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

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


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

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

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

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

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

  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2241

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

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

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

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


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

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

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

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

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

  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
2275

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

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


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

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

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

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

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

  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2300

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

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

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

Z
zhangxingxia 已提交
2309
  ```js
Z
zhangxingxia 已提交
2310
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
2311 2312 2313 2314 2315 2316 2317 2318
  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 已提交
2319
基于文件描述符改变文件所有者,使用Promise异步回调。
Z
zengyawen 已提交
2320

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Z
zhangxingxia 已提交
2396
  ```js
2397
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
2398
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
2399 2400 2401 2402 2403 2404 2405 2406
  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 已提交
2407
基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是符号链接所指向的实际文件,使用Promise异步回调。
Z
zengyawen 已提交
2408

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Z
zhangxingxia 已提交
2482
  ```js
Z
zengyawen 已提交
2483 2484 2485 2486 2487 2488 2489 2490 2491
  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 已提交
2492
监听文件或者目录的变化,使用callback异步回调。
Z
zengyawen 已提交
2493

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

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

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

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

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

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

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


## Readout

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

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

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


## Stat

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

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

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

H
HelloCrease 已提交
2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555
| 名称     | 参数类型   | 可读   | 可写   | 说明                                       |
| ------ | ------ | ---- | ---- | ---------------------------------------- |
| 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 已提交
2556 2557


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

Z
zhangxingxia 已提交
2625
用于判断文件是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
2626

2627 2628
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2629
**返回值:**
H
haonan_7 已提交
2630 2631 2632 2633

  | 类型      | 说明                    |
  | ------- | --------------------- |
  | boolean | 表示文件是否是&nbsp;FIFO。 |
Z
zengyawen 已提交
2634

Z
zhangxingxia 已提交
2635
**示例:**
H
haonan_7 已提交
2636

Z
zhangxingxia 已提交
2637
  ```js
Z
zengyawen 已提交
2638
  let isFIFO = fileio.statSync(path).isFIFO(); 
Z
zengyawen 已提交
2639
  ```
Z
zengyawen 已提交
2640 2641


Z
zengyawen 已提交
2642
### isFile
Z
zengyawen 已提交
2643

Z
zengyawen 已提交
2644
isFile(): boolean
Z
zengyawen 已提交
2645

Z
zhangxingxia 已提交
2646
用于判断文件是否是普通文件。
Z
zengyawen 已提交
2647

2648 2649
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2650
**返回值:**
H
haonan_7 已提交
2651 2652 2653 2654

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示文件是否是普通文件。 |
Z
zengyawen 已提交
2655

Z
zhangxingxia 已提交
2656
**示例:**
H
haonan_7 已提交
2657

Z
zhangxingxia 已提交
2658
  ```js
Z
zhangxingxia 已提交
2659
  let isFile = fileio.statSync(path).isFile();
Z
zengyawen 已提交
2660
  ```
Z
zengyawen 已提交
2661 2662


Z
zengyawen 已提交
2663
### isSocket
Z
zengyawen 已提交
2664

Z
zengyawen 已提交
2665
isSocket(): boolean
Z
zengyawen 已提交
2666

Z
zhangxingxia 已提交
2667
用于判断文件是否是套接字。
Z
zengyawen 已提交
2668

2669 2670
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2671
**返回值:**
H
haonan_7 已提交
2672 2673 2674 2675

  | 类型      | 说明             |
  | ------- | -------------- |
  | boolean | 表示文件是否是套接字。 |
Z
zengyawen 已提交
2676

Z
zhangxingxia 已提交
2677
**示例:**
H
haonan_7 已提交
2678

Z
zhangxingxia 已提交
2679
  ```js
Z
zengyawen 已提交
2680 2681
  let isSocket = fileio.statSync(path).isSocket(); 
  ```
Z
zengyawen 已提交
2682 2683


Z
zengyawen 已提交
2684
### isSymbolicLink
Z
zengyawen 已提交
2685

Z
zengyawen 已提交
2686
isSymbolicLink(): boolean
Z
zengyawen 已提交
2687

Z
zhangxingxia 已提交
2688
用于判断文件是否是符号链接。
Z
zengyawen 已提交
2689

2690 2691
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2692
**返回值:**
H
haonan_7 已提交
2693 2694 2695 2696

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示文件是否是符号链接。 |
Z
zengyawen 已提交
2697

Z
zhangxingxia 已提交
2698
**示例:**
H
haonan_7 已提交
2699

Z
zhangxingxia 已提交
2700
  ```js
Z
zengyawen 已提交
2701 2702
  let isSymbolicLink = fileio.statSync(path).isSymbolicLink(); 
  ```
Z
zengyawen 已提交
2703 2704


Z
zengyawen 已提交
2705 2706 2707 2708 2709 2710 2711
## Watcher<sup>7+</sup>

Watcher是文件变化监听的实例,调用Watcher.stop()方法(同步或异步)来停止文件监听。


### stop<sup>7+</sup>

2712
stop(): Promise&lt;void&gt;
Z
zengyawen 已提交
2713

H
haonan_7 已提交
2714
关闭watcher监听,使用Promise异步回调。
Z
zengyawen 已提交
2715

2716 2717
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2718
**示例:**
H
haonan_7 已提交
2719

Z
zhangxingxia 已提交
2720
  ```js
Z
zhangxingxia 已提交
2721
  let filename = path +"/test.txt";
Z
zhangxingxia 已提交
2722
  let watcher = await fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2723
      console.info("Monitoring times: "+number);
Z
zhangxingxia 已提交
2724 2725
  });
  watcher.stop().then(function(){
Z
zhangxingxia 已提交
2726
       console.info("close watcher succeed");
Z
zhangxingxia 已提交
2727
  });
Z
zengyawen 已提交
2728 2729 2730 2731 2732
  ```


### stop<sup>7+</sup>

2733
stop(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
2734

H
haonan_7 已提交
2735
关闭watcher监听,使用callback异步回调。
Z
zengyawen 已提交
2736

2737 2738
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2739
**参数:**
H
haonan_7 已提交
2740 2741 2742 2743

  | 参数名      | 类型                        | 必填   | 说明                     |
  | -------- | ------------------------- | ---- | ---------------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 以异步方法关闭watcher监听之后的回调。 |
Z
zengyawen 已提交
2744

Z
zhangxingxia 已提交
2745
**示例:**
H
haonan_7 已提交
2746

Z
zhangxingxia 已提交
2747
  ```js
Z
zhangxingxia 已提交
2748
  let filename = path +"/test.txt";
Z
zhangxingxia 已提交
2749
  let watcher = await fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2750
      console.info("Monitoring times: "+number);
Z
zengyawen 已提交
2751
  });
Z
zhangxingxia 已提交
2752 2753 2754
  watcher.stop(function(){
      console.info("close watcher succeed");
  })
Z
zengyawen 已提交
2755 2756 2757
  ```


Z
zhangxingxia 已提交
2758
## Stream
Z
zengyawen 已提交
2759

Z
zengyawen 已提交
2760 2761 2762 2763 2764 2765 2766
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。


### close<sup>7+</sup>

close(): Promise&lt;void&gt;

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

2769 2770
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2771
**返回值:**
H
haonan_7 已提交
2772 2773 2774 2775

  | 类型                  | 说明            |
  | ------------------- | ------------- |
  | Promise&lt;void&gt; | Promise对象。返回表示异步关闭文件流的结果。 |
Z
zengyawen 已提交
2776

Z
zhangxingxia 已提交
2777
**示例:**
H
haonan_7 已提交
2778

Z
zhangxingxia 已提交
2779
  ```js
Z
zhangxingxia 已提交
2780
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2781
  ss.close().then(function(){
H
haonan_7 已提交
2782
      console.info("close fileStream succeed");
Z
zhangxingxia 已提交
2783 2784 2785
  }).catch(function(err){
      console.info("close fileStream  failed with error:"+ err);
  });
Z
zengyawen 已提交
2786 2787 2788 2789 2790 2791 2792
  ```


### close<sup>7+</sup>

close(callback: AsyncCallback&lt;void&gt;): void

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

2795 2796
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2797
**参数:**
H
haonan_7 已提交
2798 2799 2800 2801

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

Z
zhangxingxia 已提交
2803
**示例:**
H
haonan_7 已提交
2804

Z
zhangxingxia 已提交
2805
  ```js
Z
zhangxingxia 已提交
2806
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2807
  ss.close(function (err) {
Z
zhangxingxia 已提交
2808
      // do something
Z
zengyawen 已提交
2809 2810
  });
  ```
Z
zengyawen 已提交
2811 2812


2813
### closeSync
Z
zengyawen 已提交
2814

Z
zengyawen 已提交
2815
closeSync(): void
Z
zengyawen 已提交
2816

Z
zengyawen 已提交
2817
同步关闭文件流。
Z
zengyawen 已提交
2818

2819 2820
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2821
**示例:**
H
haonan_7 已提交
2822

Z
zhangxingxia 已提交
2823
  ```js
Z
zhangxingxia 已提交
2824
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2825 2826
  ss.closeSync();
  ```
Z
zengyawen 已提交
2827 2828


Z
zengyawen 已提交
2829 2830 2831 2832
### flush<sup>7+</sup>

flush(): Promise&lt;void&gt;

H
haonan_7 已提交
2833
刷新文件流,使用Promise异步回调。
Z
zengyawen 已提交
2834

2835 2836
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2837
**返回值:**
H
haonan_7 已提交
2838 2839 2840 2841

  | 类型                  | 说明            |
  | ------------------- | ------------- |
  | Promise&lt;void&gt; | Promise对象。返回表示异步刷新文件流的结果。 |
Z
zengyawen 已提交
2842

Z
zhangxingxia 已提交
2843
**示例:**
H
haonan_7 已提交
2844

Z
zhangxingxia 已提交
2845
  ```js
Z
zhangxingxia 已提交
2846
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2847
  ss.flush().then(function (){
H
haonan_7 已提交
2848
      console.info("flush succeed");
Z
zhangxingxia 已提交
2849 2850 2851
  }).catch(function(err){
      console.info("flush failed with error:"+ err);
  });
Z
zengyawen 已提交
2852 2853 2854 2855 2856 2857 2858
  ```


### flush<sup>7+</sup>

flush(callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2859
异步刷新文件流,使用callback异步回调。
Z
zengyawen 已提交
2860

2861 2862
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2863
**参数:**
H
haonan_7 已提交
2864 2865 2866 2867

  | 参数名      | 类型                        | 必填   | 说明             |
  | -------- | ------------------------- | ---- | -------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步刷新文件流后的回调函数。 |
Z
zengyawen 已提交
2868

Z
zhangxingxia 已提交
2869
**示例:**
H
haonan_7 已提交
2870

Z
zhangxingxia 已提交
2871
  ```js
Z
zhangxingxia 已提交
2872
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2873
  ss.flush(function (err) {
Z
zhangxingxia 已提交
2874
      // do something
Z
zengyawen 已提交
2875 2876 2877 2878
  });
  ```


Z
zengyawen 已提交
2879
### flushSync<sup>7+</sup>
Z
zengyawen 已提交
2880

Z
zengyawen 已提交
2881
flushSync(): void
Z
zengyawen 已提交
2882

Z
zengyawen 已提交
2883
同步刷新文件流。
Z
zengyawen 已提交
2884

2885 2886
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2887
**示例:**
H
haonan_7 已提交
2888

Z
zhangxingxia 已提交
2889
  ```js
Z
zhangxingxia 已提交
2890
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2891 2892
  ss.flushSync();
  ```
Z
zengyawen 已提交
2893 2894


Z
zengyawen 已提交
2895 2896
### write<sup>7+</sup>

2897 2898 2899 2900 2901 2902
write(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
2903

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

2906 2907
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2908
**参数:**
H
haonan_7 已提交
2909 2910 2911 2912 2913

  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
2914

Z
zhangxingxia 已提交
2915
**返回值:**
H
haonan_7 已提交
2916 2917 2918 2919

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

Z
zhangxingxia 已提交
2921
**示例:**
H
haonan_7 已提交
2922

Z
zhangxingxia 已提交
2923
  ```js
Z
zhangxingxia 已提交
2924
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2925
  ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
H
haonan_7 已提交
2926
      console.info("write succeed and size is:"+ number);
Z
zhangxingxia 已提交
2927 2928 2929
  }).catch(function(err){
      console.info("write failed with error:"+ err);
  });
Z
zengyawen 已提交
2930 2931 2932 2933 2934
  ```


### write<sup>7+</sup>

2935 2936 2937 2938 2939 2940
write(buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
2941

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

2944 2945
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2946
**参数:**
H
haonan_7 已提交
2947 2948 2949 2950 2951 2952

  | 参数名   | 类型                            | 必填 | 说明                                                         |
  | -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
  | 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 已提交
2953

Z
zhangxingxia 已提交
2954
**示例:**
H
haonan_7 已提交
2955

Z
zhangxingxia 已提交
2956
  ```js
Z
zhangxingxia 已提交
2957
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2958
  ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
Z
zhangxingxia 已提交
2959
      if (bytesWritten) {
Z
zhangxingxia 已提交
2960
         // do something
H
haonan_7 已提交
2961
         console.info("write succeed and size is:"+ bytesWritten);
Z
zengyawen 已提交
2962 2963 2964 2965 2966
      }
  });
  ```


Z
zengyawen 已提交
2967
### writeSync<sup>7+</sup>
Z
zengyawen 已提交
2968

2969 2970 2971 2972 2973 2974
writeSync(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
2975

Z
zengyawen 已提交
2976
以同步方法将数据写入流文件。
Z
zengyawen 已提交
2977

2978 2979
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2980
**参数:**
H
haonan_7 已提交
2981 2982 2983 2984 2985

  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
2986

Z
zhangxingxia 已提交
2987
**返回值:**
H
haonan_7 已提交
2988 2989 2990 2991

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

Z
zhangxingxia 已提交
2993
**示例:**
H
haonan_7 已提交
2994

Z
zhangxingxia 已提交
2995
  ```js
Z
zhangxingxia 已提交
2996
  let ss= fileio.createStreamSync(path,"r+");
Z
zengyawen 已提交
2997 2998 2999 3000 3001 3002
  let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});
  ```


### read<sup>7+</sup>

3003 3004 3005 3006 3007
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
3008

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

3011 3012
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3013
**参数:**
H
haonan_7 已提交
3014 3015 3016 3017 3018

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

Z
zhangxingxia 已提交
3020
**返回值:**
H
haonan_7 已提交
3021 3022 3023 3024

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

Z
zhangxingxia 已提交
3026
**示例:**
H
haonan_7 已提交
3027

Z
zhangxingxia 已提交
3028
  ```js
Z
zhangxingxia 已提交
3029
  let ss = fileio.createStreamSync(path, "r+");
3030
  ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readOut){
H
haonan_7 已提交
3031
      console.info("read data succeed");
W
wangbo 已提交
3032
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
3033 3034 3035
  }).catch(function(err){
      console.info("read data failed with error:"+ err);
  });
Z
zengyawen 已提交
3036 3037 3038 3039 3040
  ```


### read<sup>7+</sup>

3041 3042 3043 3044 3045
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
3046

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

3049 3050
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3051
**参数:**
H
haonan_7 已提交
3052 3053 3054 3055 3056 3057

  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
3058

Z
zhangxingxia 已提交
3059
**示例:**
H
haonan_7 已提交
3060

Z
zhangxingxia 已提交
3061
  ```js
Z
zhangxingxia 已提交
3062
  let ss = fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
3063
  ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
Z
zhangxingxia 已提交
3064
      if (readOut) {
H
haonan_7 已提交
3065
          console.info("read data succeed");
Z
zhangxingxia 已提交
3066
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
3067 3068
      }
  });
Z
zengyawen 已提交
3069
  ```
Z
zengyawen 已提交
3070 3071


Z
zengyawen 已提交
3072
### readSync<sup>7+</sup>
Z
zengyawen 已提交
3073

3074 3075 3076 3077 3078
readSync(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): number
Z
zengyawen 已提交
3079 3080 3081

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

3082 3083
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3084
**参数:**
Z
zhangxingxia 已提交
3085

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

Z
zhangxingxia 已提交
3091
**返回值:**
Z
zhangxingxia 已提交
3092

H
haonan_7 已提交
3093 3094 3095
  | 类型     | 说明       |
  | ------ | -------- |
  | number | 实际读取的长度。 |
Z
zhangxingxia 已提交
3096

Z
zhangxingxia 已提交
3097
**示例:**
H
haonan_7 已提交
3098

Z
zhangxingxia 已提交
3099
  ```js
Z
zhangxingxia 已提交
3100
  let ss = fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
3101
  let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});
Z
zengyawen 已提交
3102
  ```
Z
zengyawen 已提交
3103 3104


Z
zengyawen 已提交
3105
## Dir
Z
zengyawen 已提交
3106

3107
管理目录,在调用Dir的方法前,需要先通过opendir方法(同步或异步)来构建一个Dir实例。
Z
zengyawen 已提交
3108 3109 3110 3111 3112 3113


### read

read(): Promise&lt;Dirent&gt;

H
haonan_7 已提交
3114
读取下一个目录项,使用Promise异步回调。
Z
zengyawen 已提交
3115

3116 3117
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3118
**返回值:**
H
haonan_7 已提交
3119 3120 3121 3122

  | 类型                               | 说明            |
  | -------------------------------- | ------------- |
  | Promise&lt;[Dirent](#dirent)&gt; | Promise对象。返回表示异步读取目录项的结果。 |
Z
zengyawen 已提交
3123

Z
zhangxingxia 已提交
3124
**示例:**
H
haonan_7 已提交
3125

Z
zhangxingxia 已提交
3126
  ```js
W
wangbo 已提交
3127
  let dir = fileio.opendirSync(path);
Z
zhangxingxia 已提交
3128
  dir.read().then(function (dirent){
H
haonan_7 已提交
3129
      console.log("read succeed:"+JSON.stringify(dirent));
Z
zhangxingxia 已提交
3130 3131 3132
  }).catch(function(err){
      console.info("read failed with error:"+ err);
  });
Z
zengyawen 已提交
3133 3134 3135 3136 3137 3138 3139
  ```


### read

read(callback: AsyncCallback&lt;Dirent&gt;): void

H
haonan_7 已提交
3140
读取下一个目录项,使用callback异步回调。
Z
zengyawen 已提交
3141

3142 3143
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3144
**参数:**
H
haonan_7 已提交
3145 3146 3147 3148

  | 参数名      | 类型                                     | 必填   | 说明               |
  | -------- | -------------------------------------- | ---- | ---------------- |
  | callback | AsyncCallback&lt;[Dirent](#dirent)&gt; | 是    | 异步读取下一个目录项之后的回调。 |
Z
zengyawen 已提交
3149

Z
zhangxingxia 已提交
3150
**示例:**
H
haonan_7 已提交
3151

Z
zhangxingxia 已提交
3152
  ```js
W
wangbo 已提交
3153
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3154
  dir.read(function (err, dirent) {
Z
zhangxingxia 已提交
3155
      if (dirent) {
Z
zhangxingxia 已提交
3156
          // do something
H
haonan_7 已提交
3157
          console.log("read succeed:"+JSON.stringify(dirent));
Z
zengyawen 已提交
3158 3159 3160
      }
  });
  ```
Z
zengyawen 已提交
3161 3162


Z
zengyawen 已提交
3163
### readSync
Z
zengyawen 已提交
3164

Z
zengyawen 已提交
3165
readSync(): Dirent
Z
zengyawen 已提交
3166

Z
zengyawen 已提交
3167
同步读取下一个目录项。
Z
zengyawen 已提交
3168

3169 3170
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3171
**返回值:**
H
haonan_7 已提交
3172 3173 3174 3175

  | 类型                | 说明       |
  | ----------------- | -------- |
  | [Dirent](#dirent) | 表示一个目录项。 |
Z
zengyawen 已提交
3176

Z
zhangxingxia 已提交
3177
**示例:**
H
haonan_7 已提交
3178

Z
zhangxingxia 已提交
3179
  ```js
W
wangbo 已提交
3180
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3181 3182
  let dirent = dir.readSync();
  ```
Z
zengyawen 已提交
3183 3184


W
wangbo 已提交
3185 3186 3187 3188 3189 3190 3191 3192 3193
### close<sup>7+</sup>

close(): Promise&lt;void&gt;

异步关闭目录,使用promise形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。

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

**示例:**
H
haonan_7 已提交
3194

W
wangbo 已提交
3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211
  ```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 已提交
3212

W
wangbo 已提交
3213 3214 3215 3216 3217 3218 3219 3220
  ```js
  let dir = fileio.opendirSync(path);
  dir.close(function(err){
      console.info("close dir successfully");
  });
  ```


Z
zengyawen 已提交
3221
### closeSync
Z
zengyawen 已提交
3222

Z
zengyawen 已提交
3223
closeSync(): void
Z
zengyawen 已提交
3224

Z
zengyawen 已提交
3225
用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
Z
zengyawen 已提交
3226

3227 3228
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3229
**示例:**
H
haonan_7 已提交
3230

Z
zhangxingxia 已提交
3231
  ```js
W
wangbo 已提交
3232
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3233 3234
  dir.closeSync();
  ```
Z
zengyawen 已提交
3235 3236


Z
zengyawen 已提交
3237
## Dirent
Z
zengyawen 已提交
3238

Z
zengyawen 已提交
3239
在调用Dirent的方法前,需要先通过[dir.read()](#read)方法(同步或异步)来构建一个Dirent实例。
Z
zengyawen 已提交
3240

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

Z
zengyawen 已提交
3243
### 属性
Z
zengyawen 已提交
3244

H
HelloCrease 已提交
3245 3246 3247
| 名称   | 参数类型   | 可读   | 可写   | 说明      |
| ---- | ------ | ---- | ---- | ------- |
| name | string | 是    | 否    | 目录项的名称。 |
Z
zengyawen 已提交
3248 3249


Z
zengyawen 已提交
3250
### isBlockDevice
Z
zengyawen 已提交
3251

Z
zengyawen 已提交
3252
isBlockDevice(): boolean
Z
zengyawen 已提交
3253

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

3256 3257
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3258
**返回值:**
H
haonan_7 已提交
3259 3260 3261 3262

  | 类型      | 说明               |
  | ------- | ---------------- |
  | boolean | 表示当前目录项是否是块特殊设备。 |
Z
zengyawen 已提交
3263

Z
zhangxingxia 已提交
3264
**示例:**
H
haonan_7 已提交
3265

Z
zhangxingxia 已提交
3266
  ```js
W
wangbo 已提交
3267
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3268 3269
  let isBLockDevice = dir.readSync().isBlockDevice();
  ```
Z
zengyawen 已提交
3270 3271


Z
zengyawen 已提交
3272
### isCharacterDevice
Z
zengyawen 已提交
3273

Z
zengyawen 已提交
3274
isCharacterDevice(): boolean
Z
zengyawen 已提交
3275

Z
zhangxingxia 已提交
3276
用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
Z
zengyawen 已提交
3277

3278 3279
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3280
**返回值:**
H
haonan_7 已提交
3281 3282 3283 3284

  | 类型      | 说明                |
  | ------- | ----------------- |
  | boolean | 表示当前目录项是否是字符特殊设备。 |
Z
zengyawen 已提交
3285

Z
zhangxingxia 已提交
3286
**示例:**
H
haonan_7 已提交
3287

Z
zhangxingxia 已提交
3288
  ```js
W
wangbo 已提交
3289
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3290 3291
  let isCharacterDevice = dir.readSync().isCharacterDevice(); 
  ```
Z
zengyawen 已提交
3292 3293


Z
zengyawen 已提交
3294
### isDirectory
Z
zengyawen 已提交
3295

Z
zengyawen 已提交
3296
isDirectory(): boolean
Z
zengyawen 已提交
3297

Z
zhangxingxia 已提交
3298
用于判断当前目录项是否是目录。
Z
zengyawen 已提交
3299

3300 3301
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3302
**返回值:**
H
haonan_7 已提交
3303 3304 3305 3306

  | 类型      | 说明            |
  | ------- | ------------- |
  | boolean | 表示当前目录项是否是目录。 |
Z
zengyawen 已提交
3307

Z
zhangxingxia 已提交
3308
**示例:**
H
haonan_7 已提交
3309

Z
zhangxingxia 已提交
3310
  ```js
W
wangbo 已提交
3311
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3312 3313
  let isDirectory = dir.readSync().isDirectory(); 
  ```
Z
zengyawen 已提交
3314 3315


Z
zengyawen 已提交
3316
### isFIFO
Z
zengyawen 已提交
3317

Z
zengyawen 已提交
3318
isFIFO(): boolean
Z
zengyawen 已提交
3319

Z
zhangxingxia 已提交
3320
用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
3321

3322 3323
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3324
**返回值:**
H
haonan_7 已提交
3325 3326 3327 3328

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是FIFO。 |
Z
zengyawen 已提交
3329

Z
zhangxingxia 已提交
3330
**示例:**
H
haonan_7 已提交
3331

Z
zhangxingxia 已提交
3332
  ```js
W
wangbo 已提交
3333
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3334 3335
  let isFIFO = dir.readSync().isFIFO(); 
  ```
Z
zengyawen 已提交
3336 3337


Z
zengyawen 已提交
3338
### isFile
Z
zengyawen 已提交
3339

Z
zengyawen 已提交
3340
isFile(): boolean
Z
zengyawen 已提交
3341

Z
zhangxingxia 已提交
3342
用于判断当前目录项是否是普通文件。
Z
zengyawen 已提交
3343

3344 3345
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3346
**返回值:**
H
haonan_7 已提交
3347 3348 3349 3350

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是普通文件。 |
Z
zengyawen 已提交
3351

Z
zhangxingxia 已提交
3352
**示例:**
H
haonan_7 已提交
3353

Z
zhangxingxia 已提交
3354
  ```js
W
wangbo 已提交
3355
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3356 3357
  let isFile = dir.readSync().isFile(); 
  ```
Z
zengyawen 已提交
3358 3359


Z
zengyawen 已提交
3360
### isSocket
Z
zengyawen 已提交
3361

Z
zengyawen 已提交
3362
isSocket(): boolean
Z
zengyawen 已提交
3363

Z
zhangxingxia 已提交
3364
用于判断当前目录项是否是套接字。
Z
zengyawen 已提交
3365

3366 3367
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3368
**返回值:**
H
haonan_7 已提交
3369 3370 3371 3372

  | 类型      | 说明             |
  | ------- | -------------- |
  | boolean | 表示当前目录项是否是套接字。 |
Z
zengyawen 已提交
3373

Z
zhangxingxia 已提交
3374
**示例:**
H
haonan_7 已提交
3375

Z
zhangxingxia 已提交
3376
  ```js
3377
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3378 3379
  let isSocket = dir.readSync().isSocket(); 
  ```
Z
zengyawen 已提交
3380 3381


Z
zengyawen 已提交
3382
### isSymbolicLink
Z
zengyawen 已提交
3383

Z
zengyawen 已提交
3384
isSymbolicLink(): boolean
Z
zengyawen 已提交
3385

Z
zhangxingxia 已提交
3386
用于判断当前目录项是否是符号链接。
Z
zengyawen 已提交
3387

3388 3389
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3390
**返回值:**
H
haonan_7 已提交
3391 3392 3393 3394

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是符号链接。 |
Z
zengyawen 已提交
3395

Z
zhangxingxia 已提交
3396
**示例:**
H
haonan_7 已提交
3397

Z
zhangxingxia 已提交
3398
  ```js
W
wangbo 已提交
3399
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3400 3401
  let isSymbolicLink = dir.readSync().isSymbolicLink();
  ```