js-apis-fileio.md 124.8 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
**Stage模型**
21

22
 ```js
23
import Ability from '@ohos.application.Ability';
24 25 26
class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
        let context = this.context;
27
        let path = context.filesDir;
28 29 30 31
    }
}
 ```

32 33
 Stage模型context的具体获取方法参见[Stage模型](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-ability-context.md#abilitycontext)

34
**FA模型**
35

W
wangbo 已提交
36 37 38
 ```js
 import featureAbility from '@ohos.ability.featureAbility';
 let context = featureAbility.getContext();
W
wangbo 已提交
39
 context.getFilesDir().then((data) => {
40
      let path = data;
W
wangbo 已提交
41
 })
Z
zhangxingxia 已提交
42
 ```
43 44
 
 FA模型context的具体获取方法参见[FA模型](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md#context%E6%A8%A1%E5%9D%97)
Z
zengyawen 已提交
45

Z
zengyawen 已提交
46 47 48 49
## fileio.stat

stat(path: string): Promise<Stat>

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

52 53
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
54
**参数:**
Z
zhangxingxia 已提交
55

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

Z
zhangxingxia 已提交
60
**返回值:**
Z
zhangxingxia 已提交
61

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

Z
zhangxingxia 已提交
66
**示例:**
H
haonan_7 已提交
67

Z
zhangxingxia 已提交
68 69
  ```js
  fileio.stat(path).then(function(stat){
H
haonan_7 已提交
70
      console.info("getFileInfo succeed:"+ JSON.stringify(stat));
Z
zhangxingxia 已提交
71 72 73
  }).catch(function(err){
      console.info("getFileInfo failed with error:"+ err);
  });
Z
zengyawen 已提交
74 75 76 77 78 79 80
  ```


## fileio.stat

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

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

83 84
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
85
**参数:**
H
haonan_7 已提交
86

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

Z
zhangxingxia 已提交
92
**示例:**
H
haonan_7 已提交
93

Z
zhangxingxia 已提交
94
  ```js
Z
zengyawen 已提交
95
  fileio.stat(path, function (err, stat) {
Z
zhangxingxia 已提交
96
      // example code in Stat
Z
zengyawen 已提交
97 98 99 100
  });
  ```


Z
zengyawen 已提交
101 102 103
## fileio.statSync

statSync(path:string): Stat
Z
zengyawen 已提交
104 105 106

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

107 108
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
109
**参数:**
H
haonan_7 已提交
110

Z
zengyawen 已提交
111 112 113
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待获取文件的应用沙箱路径。 |
Z
zengyawen 已提交
114 115


Z
zhangxingxia 已提交
116
**返回值:**
H
haonan_7 已提交
117 118 119 120

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

Z
zhangxingxia 已提交
122
**示例:**
H
haonan_7 已提交
123

Z
zhangxingxia 已提交
124
  ```js
Z
zengyawen 已提交
125
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
126
  // example code in Stat
Z
zengyawen 已提交
127 128 129
  ```


Z
zengyawen 已提交
130
## fileio.opendir
Z
zengyawen 已提交
131

Z
zengyawen 已提交
132
opendir(path: string): Promise<Dir>
Z
zengyawen 已提交
133

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

136 137
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
138
**参数:**
H
haonan_7 已提交
139

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

Z
zhangxingxia 已提交
144
**返回值:**
H
haonan_7 已提交
145 146 147 148

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

Z
zhangxingxia 已提交
150
**示例:**
H
haonan_7 已提交
151

Z
zhangxingxia 已提交
152 153
  ```js
  fileio.opendir(path).then(function(dir){
H
haonan_7 已提交
154
      console.info("opendir succeed:"+ JSON.stringify(dir));
Z
zhangxingxia 已提交
155 156 157
  }).catch(function(err){
      console.info("opendir failed with error:"+ err);
  });
Z
zengyawen 已提交
158 159 160
  ```


Z
zengyawen 已提交
161
## fileio.opendir
Z
zengyawen 已提交
162

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

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

167 168
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
169
**参数:**
Z
zhangxingxia 已提交
170

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

Z
zhangxingxia 已提交
176
**示例:**
H
haonan_7 已提交
177

Z
zhangxingxia 已提交
178
  ```js
Z
zengyawen 已提交
179
  fileio.opendir(path, function (err, dir) { 
Z
zhangxingxia 已提交
180 181
      // example code in Dir struct
      // use read/readSync/close
Z
zengyawen 已提交
182
  });
Z
zengyawen 已提交
183 184 185
  ```


Z
zengyawen 已提交
186
## fileio.opendirSync
Z
zengyawen 已提交
187

Z
zengyawen 已提交
188 189 190
opendirSync(path: string): Dir

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

192 193
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zengyawen 已提交
194

Z
zhangxingxia 已提交
195
**参数:**
Z
zhangxingxia 已提交
196

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

Z
zhangxingxia 已提交
201
**返回值:**
H
haonan_7 已提交
202 203 204 205

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

Z
zhangxingxia 已提交
207
**示例:**
H
haonan_7 已提交
208

Z
zhangxingxia 已提交
209
  ```js
Z
zengyawen 已提交
210 211 212
  let dir = fileio.opendirSync(path);
  // example code in Dir struct
  // use read/readSync/close
Z
zengyawen 已提交
213 214 215
  ```


Z
zengyawen 已提交
216
## fileio.access
Z
zengyawen 已提交
217

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

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

222 223
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
224
**参数:**
Z
zhangxingxia 已提交
225

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

Z
zhangxingxia 已提交
231
**返回值:**
H
haonan_7 已提交
232 233 234 235

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

Z
zhangxingxia 已提交
237
**示例:**
H
haonan_7 已提交
238

Z
zhangxingxia 已提交
239 240
  ```js
  fileio.access(path).then(function() {
H
haonan_7 已提交
241
      console.info("access succeed");
Z
zhangxingxia 已提交
242 243
  }).catch(function(err){
      console.info("access failed with error:"+ err);
Z
zengyawen 已提交
244
  });
Z
zengyawen 已提交
245 246 247
  ```


Z
zengyawen 已提交
248
## fileio.access
Z
zengyawen 已提交
249

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

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

254 255
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
256
**参数:**
H
haonan_7 已提交
257

Z
zengyawen 已提交
258 259 260 261 262
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
263

Z
zhangxingxia 已提交
264
**示例:**
H
haonan_7 已提交
265

Z
zhangxingxia 已提交
266
  ```js
Z
zengyawen 已提交
267
  fileio.access(path, function (err) {
Z
zhangxingxia 已提交
268
      // do something
Z
zengyawen 已提交
269
  });
Z
zengyawen 已提交
270 271 272
  ```


Z
zengyawen 已提交
273
## fileio.accessSync
Z
zengyawen 已提交
274

Z
zengyawen 已提交
275 276 277
accessSync(path: string, mode?: number): void

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

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

Z
zhangxingxia 已提交
281
**参数:**
H
haonan_7 已提交
282

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

Z
zhangxingxia 已提交
288
**示例:**
H
haonan_7 已提交
289

Z
zhangxingxia 已提交
290
  ```js
Z
zengyawen 已提交
291 292
  try {
      fileio.accessSync(path);
Z
zhangxingxia 已提交
293 294
  } catch(err) {
      console.info("accessSync failed with error:"+ err);
Z
zengyawen 已提交
295
  }
Z
zengyawen 已提交
296 297 298
  ```


Z
zengyawen 已提交
299
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
300

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

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

305 306
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
307
**参数:**
H
haonan_7 已提交
308 309 310 311

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

Z
zhangxingxia 已提交
313
**返回值:**
H
haonan_7 已提交
314 315 316 317

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

Z
zhangxingxia 已提交
319
**示例:**
H
haonan_7 已提交
320

Z
zhangxingxia 已提交
321
  ```js
Z
zengyawen 已提交
322
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
323
  fileio.close(fd).then(function(){
H
haonan_7 已提交
324
      console.info("close file succeed");
Z
zhangxingxia 已提交
325 326 327
  }).catch(function(err){
      console.info("close file failed with error:"+ err);
  });
Z
zengyawen 已提交
328 329 330
  ```


Z
zengyawen 已提交
331
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
332

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

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

337 338
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
339
**参数:**
H
haonan_7 已提交
340 341 342 343 344

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

Z
zhangxingxia 已提交
346
**示例:**
H
haonan_7 已提交
347

Z
zhangxingxia 已提交
348
  ```js
Z
zengyawen 已提交
349
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
350 351
  fileio.close(fd, function (err) {
      // do something
Z
zengyawen 已提交
352
  });
Z
zengyawen 已提交
353 354 355
  ```


Z
zengyawen 已提交
356
## fileio.closeSync
Z
zengyawen 已提交
357

Z
zengyawen 已提交
358
closeSync(fd: number): void
Z
zengyawen 已提交
359

Z
zengyawen 已提交
360
以同步方法关闭文件。
Z
zengyawen 已提交
361

362 363
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
364
**参数:**
H
haonan_7 已提交
365 366 367 368

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

Z
zhangxingxia 已提交
370
**示例:**
H
haonan_7 已提交
371

Z
zhangxingxia 已提交
372
  ```js
373
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
374
  fileio.closeSync(fd);
Z
zengyawen 已提交
375 376 377
  ```


Z
zengyawen 已提交
378
## fileio.copyFile
Z
zengyawen 已提交
379

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

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

384 385
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
386
**参数:**
H
haonan_7 已提交
387 388 389 390 391 392

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

Z
zhangxingxia 已提交
394
**返回值:**
H
haonan_7 已提交
395 396 397 398

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

Z
zhangxingxia 已提交
400
**示例:**
H
haonan_7 已提交
401

Z
zhangxingxia 已提交
402
  ```js
403 404
  let src = path;
  let dest = src + 'tgt';
W
wangbo 已提交
405
  fileio.copyFile(src, dest).then(function(){
H
haonan_7 已提交
406
      console.info("copyFile succeed");
Z
zhangxingxia 已提交
407 408 409
  }).catch(function(err){
      console.info("copyFile failed with error:"+ err);
  });
Z
zengyawen 已提交
410 411 412
  ```


Z
zengyawen 已提交
413
## fileio.copyFile
Z
zengyawen 已提交
414

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

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

419 420
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
421
**参数:**
H
haonan_7 已提交
422 423 424 425 426 427 428

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

Z
zhangxingxia 已提交
430
**示例:**
H
haonan_7 已提交
431

Z
zhangxingxia 已提交
432
  ```js
433 434
  let src = path;
  let dest = src + 'tgt';
W
wangbo 已提交
435
  fileio.copyFile(src, dest, function (err) {
Z
zhangxingxia 已提交
436
      // do something
Z
zengyawen 已提交
437
  });
Z
zengyawen 已提交
438 439 440
  ```


Z
zengyawen 已提交
441
## fileio.copyFileSync
Z
zengyawen 已提交
442

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

Z
zengyawen 已提交
445
以同步方法复制文件。
Z
zengyawen 已提交
446

447 448
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
449
**参数:**
H
haonan_7 已提交
450 451 452 453 454 455

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

Z
zhangxingxia 已提交
457
**示例:**
H
haonan_7 已提交
458

Z
zhangxingxia 已提交
459
  ```js
460 461
  let src = path;
  let dest = src + 'tgt';
W
wangbo 已提交
462
  fileio.copyFileSync(src, dest);
Z
zengyawen 已提交
463 464 465
  ```


Z
zengyawen 已提交
466
## fileio.mkdir
Z
zengyawen 已提交
467

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

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

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

Z
zhangxingxia 已提交
474
**参数:**
H
haonan_7 已提交
475

Z
zengyawen 已提交
476 477 478 479
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
480

Z
zhangxingxia 已提交
481
**返回值:**
H
haonan_7 已提交
482 483 484 485

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

Z
zhangxingxia 已提交
487
**示例:**
H
haonan_7 已提交
488

Z
zhangxingxia 已提交
489 490
  ```js
  fileio.mkdir(path).then(function() {
H
haonan_7 已提交
491
      console.info("mkdir succeed");
Z
zhangxingxia 已提交
492 493 494
  }).catch(function (error){
      console.info("mkdir failed with error:"+ error);
  });
Z
zengyawen 已提交
495 496 497
  ```


Z
zengyawen 已提交
498
## fileio.mkdir
Z
zengyawen 已提交
499

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

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

504 505
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
506
**参数:**
H
haonan_7 已提交
507

Z
zengyawen 已提交
508 509 510 511 512
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
513

Z
zhangxingxia 已提交
514
**示例:**
H
haonan_7 已提交
515

Z
zhangxingxia 已提交
516 517
  ```js
  fileio.mkdir(path, function(err) {
H
haonan_7 已提交
518
    console.info("mkdir succeed");
Z
zengyawen 已提交
519
  });
Z
zengyawen 已提交
520 521 522
  ```


Z
zengyawen 已提交
523
## fileio.mkdirSync
Z
zengyawen 已提交
524

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

Z
zengyawen 已提交
527
以同步方法创建目录。
Z
zengyawen 已提交
528

529 530
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
531
**参数:**
H
haonan_7 已提交
532

Z
zengyawen 已提交
533 534 535 536
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
537

Z
zhangxingxia 已提交
538
**示例:**
H
haonan_7 已提交
539

Z
zhangxingxia 已提交
540
  ```js
Z
zengyawen 已提交
541 542 543 544 545 546 547 548
  fileio.mkdirSync(path);
  ```


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

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

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

551 552
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
553
**参数:**
H
haonan_7 已提交
554

Z
zengyawen 已提交
555 556 557
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
558
| 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 已提交
559
| 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 已提交
560

Z
zhangxingxia 已提交
561
**返回值:**
H
haonan_7 已提交
562 563 564 565

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

Z
zhangxingxia 已提交
567
**示例:**
H
haonan_7 已提交
568

Z
zhangxingxia 已提交
569 570
  ```js
  fileio.open(path, 0o1, 0o0200).then(function(number){
H
haonan_7 已提交
571
      console.info("open file succeed");
Z
zhangxingxia 已提交
572
  }).catch(function(err){
Z
zhangxingxia 已提交
573 574
      console.info("open file failed with error:"+ err);
  });
Z
zengyawen 已提交
575 576 577
  ```


Z
zengyawen 已提交
578
## fileio.open<sup>7+</sup>
Z
zengyawen 已提交
579

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

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

584 585
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
586
**参数:**
H
haonan_7 已提交
587

Z
zengyawen 已提交
588 589 590
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                          | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
591
| 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 已提交
592 593
| 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 已提交
594

Z
zhangxingxia 已提交
595
**示例:**
H
haonan_7 已提交
596

Z
zhangxingxia 已提交
597 598 599
  ```js
  fileio.open(path, 0, function(err, fd) {
      // do something
Z
zengyawen 已提交
600
  });
Z
zengyawen 已提交
601 602 603
  ```


Z
zengyawen 已提交
604
## fileio.openSync
Z
zengyawen 已提交
605

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

Z
zengyawen 已提交
608
以同步方法打开文件。
Z
zengyawen 已提交
609

610 611
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
612
**参数:**
H
haonan_7 已提交
613

Z
zengyawen 已提交
614 615 616
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
R
raoxian 已提交
617
| 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 已提交
618
| 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 已提交
619

Z
zhangxingxia 已提交
620
**返回值:**
H
haonan_7 已提交
621 622 623 624

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

Z
zhangxingxia 已提交
626
**示例:**
H
haonan_7 已提交
627

Z
zhangxingxia 已提交
628
  ```js
W
wangbo 已提交
629 630 631 632 633 634 635 636 637
  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 已提交
638
  ```
Z
zengyawen 已提交
639 640


Z
zengyawen 已提交
641
## fileio.read
Z
zengyawen 已提交
642

643 644 645 646 647
read(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
648

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

651 652
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
653
**参数:**
H
haonan_7 已提交
654

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

Z
zhangxingxia 已提交
661
**返回值:**
Z
zhangxingxia 已提交
662

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

Z
zhangxingxia 已提交
667
**示例:**
H
haonan_7 已提交
668

Z
zhangxingxia 已提交
669
  ```js
Z
zengyawen 已提交
670 671
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
672
  fileio.read(fd, buf).then(function(readOut){
H
haonan_7 已提交
673
      console.info("read file data succeed");
Z
zhangxingxia 已提交
674
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
675 676
  }).catch(function(err){
      console.info("read file data failed with error:"+ err);
Z
zhangxingxia 已提交
677
  });
Z
zengyawen 已提交
678 679 680
  ```


Z
zengyawen 已提交
681
## fileio.read
Z
zengyawen 已提交
682

683 684 685 686 687
read(fd: number, buffer: ArrayBuffer, options: {
    offset?: number;
    length?: number;
    position?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
688

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

691 692
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
693
**参数:**
H
haonan_7 已提交
694 695 696 697 698 699 700

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

Z
zhangxingxia 已提交
702
**示例:**
H
haonan_7 已提交
703

Z
zhangxingxia 已提交
704
  ```js
Z
zengyawen 已提交
705 706
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
707
  fileio.read(fd, buf, function (err, readOut) {
Z
zhangxingxia 已提交
708
      if (readOut) {
H
haonan_7 已提交
709
          console.info("read file data succeed");
Z
zhangxingxia 已提交
710
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
711 712
      }
  });
Z
zengyawen 已提交
713
  ```
Z
zengyawen 已提交
714 715


Z
zengyawen 已提交
716
## fileio.readSync
Z
zengyawen 已提交
717

718 719 720 721 722
readSync(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): number
Z
zengyawen 已提交
723 724 725

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

726 727
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
728
**参数:**
H
haonan_7 已提交
729 730 731 732 733 734

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

Z
zhangxingxia 已提交
736
**返回值:**
H
haonan_7 已提交
737 738 739 740

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

Z
zhangxingxia 已提交
742
**示例:**
H
haonan_7 已提交
743

Z
zhangxingxia 已提交
744
  ```js
Z
zengyawen 已提交
745 746 747 748 749 750 751 752 753 754
  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 已提交
755
删除目录,使用Promise异步回调。
Z
zengyawen 已提交
756

757 758
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
759
**参数:**
H
haonan_7 已提交
760

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

Z
zhangxingxia 已提交
765
**返回值:**
H
haonan_7 已提交
766 767 768 769

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

Z
zhangxingxia 已提交
771
**示例:**
H
haonan_7 已提交
772

Z
zhangxingxia 已提交
773 774
  ```js
  fileio.rmdir(path).then(function() {
H
haonan_7 已提交
775
      console.info("rmdir succeed");
Z
zhangxingxia 已提交
776 777
  }).catch(function(err){
      console.info("rmdir failed with error:"+ err);
Z
zengyawen 已提交
778 779 780 781 782 783 784 785
  });
  ```


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

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

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

788 789
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
790
**参数:**
H
haonan_7 已提交
791

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

Z
zhangxingxia 已提交
797
**示例:**
H
haonan_7 已提交
798

Z
zhangxingxia 已提交
799 800 801
  ```js
  fileio.rmdir(path, function(err){
      // do something
H
haonan_7 已提交
802
      console.info("rmdir succeed");
Z
zengyawen 已提交
803 804 805 806
  });
  ```


807
## fileio.rmdirSync<sup>7+</sup>
Z
zengyawen 已提交
808

809
rmdirSync(path: string): void
Z
zengyawen 已提交
810 811 812

以同步方法删除目录。

813 814
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
815
**参数:**
H
haonan_7 已提交
816

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

Z
zhangxingxia 已提交
821
**示例:**
H
haonan_7 已提交
822

Z
zhangxingxia 已提交
823
  ```js
Z
zengyawen 已提交
824 825 826 827 828 829 830 831
  fileio.rmdirSync(path);
  ```


## fileio.unlink

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

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

834 835
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
836
**参数:**
H
haonan_7 已提交
837

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

Z
zhangxingxia 已提交
842
**返回值:**
H
haonan_7 已提交
843 844 845 846

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

Z
zhangxingxia 已提交
848
**示例:**
H
haonan_7 已提交
849

Z
zhangxingxia 已提交
850 851
  ```js
  fileio.unlink(path).then(function(){
H
haonan_7 已提交
852
      console.info("remove file succeed");
Z
zhangxingxia 已提交
853 854 855
  }).catch(function(error){
      console.info("remove file failed with error:"+ error);
  });
Z
zengyawen 已提交
856 857 858 859 860 861 862
  ```


## fileio.unlink

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

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

865 866
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
867
**参数:**
H
haonan_7 已提交
868

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

Z
zhangxingxia 已提交
874
**示例:**
H
haonan_7 已提交
875

Z
zhangxingxia 已提交
876 877
  ```js
  fileio.unlink(path, function(err) {
H
haonan_7 已提交
878
      console.info("remove file succeed");
Z
zengyawen 已提交
879 880 881 882 883 884 885 886 887 888
  });
  ```


## fileio.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

889 890
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
891
**参数:**
H
haonan_7 已提交
892

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

Z
zhangxingxia 已提交
897
**示例:**
H
haonan_7 已提交
898

Z
zhangxingxia 已提交
899
  ```js
Z
zengyawen 已提交
900 901 902 903 904 905
  fileio.unlinkSync(path);
  ```


## fileio.write

906 907 908 909 910 911
write(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
912

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

915 916
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
917
**参数:**
H
haonan_7 已提交
918 919 920 921 922 923

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

Z
zhangxingxia 已提交
925
**返回值:**
H
haonan_7 已提交
926 927 928 929

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

Z
zhangxingxia 已提交
931
**示例:**
H
haonan_7 已提交
932

Z
zhangxingxia 已提交
933
  ```js
Z
zhangxingxia 已提交
934
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
Z
zhangxingxia 已提交
935
  fileio.write(fd, "hello, world").then(function(number){
H
haonan_7 已提交
936
       console.info("write data to file succeed and size is:"+ number);
Z
zhangxingxia 已提交
937 938 939
  }).catch(function(err){
      console.info("write data to file failed with error:"+ err);
  });
Z
zengyawen 已提交
940 941 942 943 944
  ```


## fileio.write

945 946 947 948 949 950
write(fd: number, buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
951

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

954 955
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
956
**参数:**
H
haonan_7 已提交
957 958 959 960 961 962 963

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

Z
zhangxingxia 已提交
965
**示例:**
H
haonan_7 已提交
966

Z
zhangxingxia 已提交
967
  ```js
Z
zengyawen 已提交
968 969
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
  fileio.write(fd, "hello, world", function (err, bytesWritten) {
Z
zhangxingxia 已提交
970
      if (bytesWritten) {
H
haonan_7 已提交
971
         console.info("write data to file succeed and size is:"+ bytesWritten);
Z
zengyawen 已提交
972 973 974 975 976 977 978
      }
  });
  ```


## fileio.writeSync

979 980 981 982 983 984
writeSync(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
985 986 987

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

988 989
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
990
**参数:**
H
haonan_7 已提交
991 992 993 994 995 996

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

Z
zhangxingxia 已提交
998
**返回值:**
H
haonan_7 已提交
999 1000 1001 1002

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

Z
zhangxingxia 已提交
1004
**示例:**
H
haonan_7 已提交
1005

Z
zhangxingxia 已提交
1006
  ```js
Z
zengyawen 已提交
1007 1008 1009 1010 1011 1012 1013 1014 1015
  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 已提交
1016
计算文件的哈希值,使用Promise异步回调。
Z
zengyawen 已提交
1017

1018 1019
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1020
**参数:**
H
haonan_7 已提交
1021

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

Z
zhangxingxia 已提交
1027
**返回值:**
H
haonan_7 已提交
1028 1029 1030 1031

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

Z
zhangxingxia 已提交
1033
**示例:**
H
haonan_7 已提交
1034

Z
zhangxingxia 已提交
1035 1036
  ```js
  fileio.hash(path, "sha256").then(function(str){
H
haonan_7 已提交
1037
      console.info("calculate file hash succeed:"+ str);
1038
  }).catch(function(err){
W
wangbo 已提交
1039
      console.info("calculate file hash failed with error:"+ err);
Z
zhangxingxia 已提交
1040
  });
Z
zengyawen 已提交
1041 1042 1043 1044 1045
  ```


## fileio.hash

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

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

1050 1051
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1052
**参数:**
H
haonan_7 已提交
1053

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

Z
zhangxingxia 已提交
1060
**示例:**
H
haonan_7 已提交
1061

Z
zhangxingxia 已提交
1062
  ```js
Z
zhangxingxia 已提交
1063
  fileio.hash(path, "sha256", function(err, hashStr) {
Z
zhangxingxia 已提交
1064
      if (hashStr) {
H
haonan_7 已提交
1065
          console.info("calculate file hash succeed:"+ hashStr);
Z
zengyawen 已提交
1066 1067 1068 1069 1070 1071 1072 1073 1074
      }
  });
  ```


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

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

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

1077 1078
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1079
**参数:**
H
haonan_7 已提交
1080

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

Z
zhangxingxia 已提交
1086
**返回值:**
H
haonan_7 已提交
1087 1088 1089 1090

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

Z
zhangxingxia 已提交
1092
**示例:**
H
haonan_7 已提交
1093

Z
zhangxingxia 已提交
1094
  ```js
1095
  fileio.chmod(path, 0o700).then(function() {
H
haonan_7 已提交
1096
      console.info("chmod succeed");
Z
zhangxingxia 已提交
1097 1098
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
1099 1100 1101 1102 1103 1104 1105 1106
  });
  ```


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

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

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

1109 1110
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1111
**参数:**
H
haonan_7 已提交
1112

Z
zengyawen 已提交
1113 1114
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1115
| path     | string                    | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1116 1117
| 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 已提交
1118

Z
zhangxingxia 已提交
1119
**示例:**
H
haonan_7 已提交
1120

Z
zhangxingxia 已提交
1121
  ```js
1122
  fileio.chmod(path, 0o700, function (err) {
Z
zhangxingxia 已提交
1123
      // do something
Z
zengyawen 已提交
1124 1125 1126 1127 1128 1129 1130 1131
  });
  ```


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

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

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

1134 1135
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1136
**参数:**
H
haonan_7 已提交
1137

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

Z
zhangxingxia 已提交
1143
**示例:**
H
haonan_7 已提交
1144

Z
zhangxingxia 已提交
1145
  ```js
1146
  fileio.chmodSync(path, 0o700);
Z
zengyawen 已提交
1147 1148 1149 1150 1151 1152 1153
  ```


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

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

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

1156 1157
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1158
**参数:**
H
haonan_7 已提交
1159 1160 1161 1162

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

Z
zhangxingxia 已提交
1164
**返回值:**
H
haonan_7 已提交
1165 1166 1167 1168

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

Z
zhangxingxia 已提交
1170
**示例:**
H
haonan_7 已提交
1171

Z
zhangxingxia 已提交
1172
  ```js
1173
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1174
  fileio.fstat(fd).then(function(stat){
H
haonan_7 已提交
1175
      console.info("fstat succeed:"+ JSON.stringify(stat));
Z
zhangxingxia 已提交
1176 1177 1178
  }).catch(function(err){
      console.info("fstat failed with error:"+ err);
  });
Z
zengyawen 已提交
1179 1180 1181 1182 1183 1184 1185
  ```


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

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

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

1188 1189
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1190
**参数:**
H
haonan_7 已提交
1191 1192 1193 1194 1195

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

Z
zhangxingxia 已提交
1197
**示例:**
H
haonan_7 已提交
1198

Z
zhangxingxia 已提交
1199
  ```js
Z
zengyawen 已提交
1200
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1201 1202
  fileio.fstat(fd, function (err) {
      // do something
Z
zengyawen 已提交
1203 1204 1205 1206 1207 1208 1209 1210
  });
  ```


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

fstatSync(fd: number): Stat

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

1213 1214
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1215
**参数:**
H
haonan_7 已提交
1216 1217 1218 1219

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

Z
zhangxingxia 已提交
1221
**返回值:**
H
haonan_7 已提交
1222 1223 1224 1225

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

Z
zhangxingxia 已提交
1227
**示例:**
H
haonan_7 已提交
1228

Z
zhangxingxia 已提交
1229
  ```js
Z
zengyawen 已提交
1230 1231 1232 1233 1234 1235 1236
  let fd = fileio.openSync(path);
  let stat = fileio.fstatSync(fd);
  ```


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

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

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

1241 1242
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1243
**参数:**
H
haonan_7 已提交
1244 1245 1246 1247 1248

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

Z
zhangxingxia 已提交
1250
**返回值:**
H
haonan_7 已提交
1251 1252 1253 1254

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

Z
zhangxingxia 已提交
1256
**示例:**
H
haonan_7 已提交
1257

Z
zhangxingxia 已提交
1258
  ```js
Z
zengyawen 已提交
1259
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1260
  fileio.ftruncate(fd, 5).then(function(err) {    
H
haonan_7 已提交
1261
      console.info("truncate file succeed");
Z
zhangxingxia 已提交
1262 1263
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1264 1265 1266 1267 1268 1269 1270 1271
  });
  ```


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

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

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

1274 1275
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1276
**参数:**
H
haonan_7 已提交
1277 1278 1279 1280 1281 1282

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

Z
zhangxingxia 已提交
1284
**示例:**
H
haonan_7 已提交
1285

Z
zhangxingxia 已提交
1286
  ```js
1287 1288 1289
  let fd = fileio.openSync(path);
  let len = 5;
  fileio.ftruncate(fd, 5, function(err){
Z
zhangxingxia 已提交
1290
      // do something
Z
zengyawen 已提交
1291 1292 1293 1294 1295 1296 1297 1298 1299 1300
  });
  ```


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

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

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

1301 1302
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1303
**参数:**
H
haonan_7 已提交
1304 1305 1306 1307 1308

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

Z
zhangxingxia 已提交
1310
**示例:**
H
haonan_7 已提交
1311

Z
zhangxingxia 已提交
1312
  ```js
1313 1314
  let fd = fileio.openSync(path);
  let len = 5;
Z
zhangxingxia 已提交
1315
  fileio.ftruncateSync(fd, len);
Z
zengyawen 已提交
1316 1317 1318 1319 1320
  ```


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

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

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

1325 1326
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1327
**参数:**
H
haonan_7 已提交
1328

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

Z
zhangxingxia 已提交
1334
**返回值:**
H
haonan_7 已提交
1335 1336 1337 1338

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

Z
zhangxingxia 已提交
1340
**示例:**
H
haonan_7 已提交
1341

Z
zhangxingxia 已提交
1342
  ```js
1343
  let len = 5;
Z
zhangxingxia 已提交
1344
  fileio.truncate(path, len).then(function(){
H
haonan_7 已提交
1345
      console.info("truncate file succeed");
Z
zhangxingxia 已提交
1346 1347
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1348 1349 1350 1351 1352 1353 1354 1355
  });
  ```


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

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

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

1358 1359
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1360
**参数:**
H
haonan_7 已提交
1361

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

Z
zhangxingxia 已提交
1368
**示例:**
H
haonan_7 已提交
1369

Z
zhangxingxia 已提交
1370
  ```js
1371
  let len = 5;
Z
zhangxingxia 已提交
1372 1373
  fileio.truncate(path, len, function(err){
      // do something
Z
zengyawen 已提交
1374 1375 1376 1377 1378 1379
  });
  ```


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

1380
truncateSync(path: string, len?: number): void
Z
zengyawen 已提交
1381 1382 1383

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

1384 1385
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1386
**参数:**
H
haonan_7 已提交
1387

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

Z
zhangxingxia 已提交
1393
**示例:**
H
haonan_7 已提交
1394

Z
zhangxingxia 已提交
1395
  ```js
1396
  let len = 5;
Z
zhangxingxia 已提交
1397
  fileio.truncateSync(path, len);
Z
zengyawen 已提交
1398 1399 1400 1401 1402
  ```


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

1403 1404 1405 1406 1407
readText(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): Promise&lt;string&gt;
Z
zengyawen 已提交
1408

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

1411 1412
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1413
**参数:**
H
haonan_7 已提交
1414

Z
zengyawen 已提交
1415 1416 1417 1418
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
1419

Z
zhangxingxia 已提交
1420
**返回值:**
H
haonan_7 已提交
1421 1422 1423 1424

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

Z
zhangxingxia 已提交
1426
**示例:**
H
haonan_7 已提交
1427

Z
zhangxingxia 已提交
1428 1429
  ```js
  fileio.readText(path).then(function(str) {
H
haonan_7 已提交
1430
      console.info("readText succeed:"+ str);
Z
zhangxingxia 已提交
1431 1432
  }).catch(function(err){
      console.info("readText failed with error:"+ err);
Z
zengyawen 已提交
1433 1434 1435 1436 1437 1438
  });
  ```


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

1439 1440 1441 1442 1443
readText(filePath: string, options: {
    position?: number;
    length?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
1444

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

1447 1448
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1449
**参数:**
H
haonan_7 已提交
1450

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

Z
zhangxingxia 已提交
1457
**示例:**
H
haonan_7 已提交
1458

Z
zhangxingxia 已提交
1459
  ```js
1460
  fileio.readText(path, { position: 1, encoding: 'UTF-8' }, function(err, str){
Z
zhangxingxia 已提交
1461
      // do something
Z
zengyawen 已提交
1462 1463 1464 1465 1466 1467
  });
  ```


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

1468 1469 1470 1471 1472
readTextSync(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): string
Z
zengyawen 已提交
1473 1474 1475

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

1476 1477
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1478
**参数:**
H
haonan_7 已提交
1479

Z
zengyawen 已提交
1480 1481 1482 1483
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
1484

Z
zhangxingxia 已提交
1485
**返回值:**
H
haonan_7 已提交
1486 1487 1488 1489

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

Z
zhangxingxia 已提交
1491
**示例:**
H
haonan_7 已提交
1492

Z
zhangxingxia 已提交
1493 1494
  ```js
  let str = fileio.readTextSync(path, {position: 1, length: 3});
Z
zengyawen 已提交
1495 1496 1497 1498 1499 1500 1501
  ```


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

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

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

1504 1505
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1506
**参数:**
H
haonan_7 已提交
1507

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

Z
zhangxingxia 已提交
1512
**返回值:**
H
haonan_7 已提交
1513 1514 1515 1516

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

Z
zhangxingxia 已提交
1518
**示例:**
H
haonan_7 已提交
1519

Z
zhangxingxia 已提交
1520 1521
  ```js
  fileio.lstat(path).then(function(stat){
Z
zhangxingxia 已提交
1522
      console.info("get link status succeed:"+ JSON.stringify(stat));
Z
zhangxingxia 已提交
1523 1524 1525
  }).catch(function(err){
      console.info("get link status failed with error:"+ err);
  });
Z
zengyawen 已提交
1526 1527 1528 1529 1530 1531 1532
  ```


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

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

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

1535 1536
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1537
**参数:**
H
haonan_7 已提交
1538

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

Z
zhangxingxia 已提交
1544
**示例:**
H
haonan_7 已提交
1545

Z
zhangxingxia 已提交
1546 1547 1548
  ```js
  fileio.lstat(path, function (err, stat) {
      // do something
Z
zengyawen 已提交
1549
  });
Z
zengyawen 已提交
1550 1551 1552 1553 1554 1555 1556
  ```


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

lstatSync(path:string): Stat

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

1559 1560
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1561
**参数:**
H
haonan_7 已提交
1562

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

Z
zhangxingxia 已提交
1567
**返回值:**
H
haonan_7 已提交
1568 1569 1570 1571

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

Z
zhangxingxia 已提交
1573
**示例:**
H
haonan_7 已提交
1574

Z
zhangxingxia 已提交
1575
  ```js
Z
zengyawen 已提交
1576 1577 1578 1579 1580 1581 1582 1583
  let stat = fileio.lstatSync(path);
  ```


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

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

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

1586 1587
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1588
**参数:**
H
haonan_7 已提交
1589

Z
zengyawen 已提交
1590 1591 1592 1593
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
| newPath | String | 是   | 目标文件的新应用沙箱路径。   |
Z
zengyawen 已提交
1594

Z
zhangxingxia 已提交
1595
**返回值:**
H
haonan_7 已提交
1596 1597 1598 1599

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

Z
zhangxingxia 已提交
1601
**示例:**
H
haonan_7 已提交
1602

Z
zhangxingxia 已提交
1603
  ```js
1604 1605
  let oldPath = path;
  let newPath = oldPath + '123';
W
wangbo 已提交
1606
  fileio.rename(oldPath, newPath).then(function() {
H
haonan_7 已提交
1607
      console.info("rename succeed");
Z
zhangxingxia 已提交
1608 1609
  }).catch(function(err){
      console.info("rename failed with error:"+ err);
Z
zengyawen 已提交
1610 1611 1612 1613 1614 1615 1616 1617
  });
  ```


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

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

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

1620 1621
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1622
**参数:**
H
haonan_7 已提交
1623

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

Z
zhangxingxia 已提交
1630
**示例:**
H
haonan_7 已提交
1631

Z
zhangxingxia 已提交
1632
  ```js
1633 1634
  let oldPath = path;
  let newPath = oldPath + '123';
W
wangbo 已提交
1635
  fileio.rename(oldPath, newPath, function(err){
Z
zengyawen 已提交
1636 1637 1638 1639 1640 1641 1642 1643 1644 1645
  });
  ```


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

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

以同步方法重命名文件。

1646 1647
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1648
**参数:**
H
haonan_7 已提交
1649

Z
zengyawen 已提交
1650 1651 1652 1653
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
| newPath | String | 是   | 目标文件的新应用沙箱路径。   |
Z
zengyawen 已提交
1654

Z
zhangxingxia 已提交
1655
**示例:**
H
haonan_7 已提交
1656

Z
zhangxingxia 已提交
1657
  ```js
1658 1659
  let oldPath = path;
  let newPath = oldPath + '123';
W
wangbo 已提交
1660
  fileio.renameSync(oldPath, newPath);
Z
zengyawen 已提交
1661 1662 1663 1664 1665 1666 1667
  ```


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

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

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

1670 1671
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1672
**参数:**
H
haonan_7 已提交
1673 1674 1675 1676

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

Z
zhangxingxia 已提交
1678
**返回值:**
H
haonan_7 已提交
1679 1680 1681 1682

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

Z
zhangxingxia 已提交
1684
**示例:**
H
haonan_7 已提交
1685

Z
zhangxingxia 已提交
1686
  ```js
1687
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1688
  fileio.fsync(fd).then(function(){
H
haonan_7 已提交
1689
      console.info("sync data succeed");
Z
zhangxingxia 已提交
1690 1691 1692
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
  });
Z
zengyawen 已提交
1693 1694 1695 1696 1697 1698 1699
  ```


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

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

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

1702 1703
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1704
**参数:**
H
haonan_7 已提交
1705 1706 1707 1708 1709

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

Z
zhangxingxia 已提交
1711
**示例:**
H
haonan_7 已提交
1712

W
wangbo 已提交
1713
  ```js
1714
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
1715
  fileio.fsync(fd, function(err){
Z
zhangxingxia 已提交
1716
      // do something
Z
zengyawen 已提交
1717 1718 1719 1720 1721 1722 1723 1724 1725 1726
  });
  ```


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

fsyncSync(fd: number): void

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

1727 1728
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1729
**参数:**
H
haonan_7 已提交
1730 1731 1732 1733

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

Z
zhangxingxia 已提交
1735
**示例:**
H
haonan_7 已提交
1736

Z
zhangxingxia 已提交
1737
  ```js
1738
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1739
  fileio.fsyncSync(fd);
Z
zengyawen 已提交
1740 1741 1742 1743 1744 1745 1746
  ```


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

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

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

1749 1750
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1751
**参数:**
H
haonan_7 已提交
1752 1753 1754 1755

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

Z
zhangxingxia 已提交
1757
**返回值:**
H
haonan_7 已提交
1758 1759 1760 1761

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

Z
zhangxingxia 已提交
1763
**示例:**
H
haonan_7 已提交
1764

W
wangbo 已提交
1765
  ```js
1766
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1767
  fileio.fdatasync(fd).then(function(err) {
H
haonan_7 已提交
1768
      console.info("sync data succeed");
Z
zhangxingxia 已提交
1769 1770
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
Z
zengyawen 已提交
1771 1772 1773 1774 1775 1776 1777 1778
  });
  ```


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

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

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

1781 1782
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1783
**参数:**
H
haonan_7 已提交
1784 1785 1786 1787 1788

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

Z
zhangxingxia 已提交
1790
**示例:**
H
haonan_7 已提交
1791

Z
zhangxingxia 已提交
1792
  ```js
1793
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
1794
  fileio.fdatasync (fd, function (err) {
Z
zhangxingxia 已提交
1795
      // do something
Z
zengyawen 已提交
1796 1797 1798 1799 1800 1801 1802 1803 1804 1805
  });
  ```


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

fdatasyncSync(fd: number): void

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

1806 1807
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1808
**参数:**
H
haonan_7 已提交
1809 1810 1811 1812

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

Z
zhangxingxia 已提交
1814
**示例:**
H
haonan_7 已提交
1815

Z
zhangxingxia 已提交
1816
  ```js
1817
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
1818 1819 1820 1821 1822 1823 1824 1825
  let stat = fileio.fdatasyncSync(fd);
  ```


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

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

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

1828 1829
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1830
**参数:**
H
haonan_7 已提交
1831

Z
zengyawen 已提交
1832 1833 1834 1835
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| target  | string | 是   | 目标文件的应用沙箱路径。     |
| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
Z
zengyawen 已提交
1836

Z
zhangxingxia 已提交
1837
**返回值:**
H
haonan_7 已提交
1838 1839 1840 1841

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

Z
zhangxingxia 已提交
1843
**示例:**
H
haonan_7 已提交
1844

Z
zhangxingxia 已提交
1845
  ```js
1846 1847
  let target = path;
  let srcPath = target + 'aaa';
W
wangbo 已提交
1848
  fileio.symlink(target, srcPath).then(function() {
H
haonan_7 已提交
1849
      console.info("symlink succeed");
Z
zhangxingxia 已提交
1850 1851
  }).catch(function(err){
      console.info("symlink failed with error:"+ err);
Z
zengyawen 已提交
1852 1853 1854 1855 1856 1857 1858 1859
  });
  ```


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

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

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

1862 1863
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1864
**参数:**
H
haonan_7 已提交
1865

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

Z
zhangxingxia 已提交
1872
**示例:**
H
haonan_7 已提交
1873

Z
zhangxingxia 已提交
1874
  ```js
1875 1876
  let target = path;
  let srcPath = target + 'aaa';
W
wangbo 已提交
1877
  fileio.symlink(target, srcPath, function (err) {
Z
zhangxingxia 已提交
1878
      // do something
Z
zengyawen 已提交
1879 1880 1881 1882 1883 1884 1885 1886 1887 1888
  });
  ```


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

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

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

1889 1890
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1891
**参数:**
H
haonan_7 已提交
1892

Z
zengyawen 已提交
1893 1894 1895 1896
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| target  | string | 是   | 目标文件的应用沙箱路径。     |
| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
Z
zengyawen 已提交
1897

Z
zhangxingxia 已提交
1898
**示例:**
H
haonan_7 已提交
1899

Z
zhangxingxia 已提交
1900
  ```js
1901 1902
  let target = path;
  let srcPath = target + 'aaa';
W
wangbo 已提交
1903
  fileio.symlinkSync(target, srcPath);
Z
zengyawen 已提交
1904 1905 1906 1907 1908 1909 1910
  ```


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

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

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

1913 1914
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1915
**参数:**
H
haonan_7 已提交
1916

Z
zengyawen 已提交
1917 1918 1919 1920 1921
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待改变文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID(UserID)。        |
| gid    | number | 是   | 新的GID(GroupID)。       |
Z
zengyawen 已提交
1922

Z
zhangxingxia 已提交
1923
**返回值:**
H
haonan_7 已提交
1924 1925 1926 1927

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

Z
zhangxingxia 已提交
1929
**示例:**
H
haonan_7 已提交
1930

Z
zhangxingxia 已提交
1931
  ```js
Z
zengyawen 已提交
1932
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
1933
  fileio.chown(path, stat.uid, stat.gid).then(function(){
H
haonan_7 已提交
1934
      console.info("chown succeed");
Z
zhangxingxia 已提交
1935 1936 1937
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
1938 1939 1940 1941 1942 1943 1944
  ```


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

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

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

1947 1948
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1949
**参数:**
H
haonan_7 已提交
1950

Z
zengyawen 已提交
1951 1952 1953 1954 1955 1956
| 参数名   | 类型                      | 必填 | 说明                           |
| -------- | ------------------------- | ---- | ------------------------------ |
| path     | string                    | 是   | 待改变文件的应用沙箱路径。     |
| uid      | number                    | 是   | 新的UID。                      |
| gid      | number                    | 是   | 新的GID。                      |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
1957

Z
zhangxingxia 已提交
1958
**示例:**
H
haonan_7 已提交
1959

Z
zhangxingxia 已提交
1960
  ```js
Z
zhangxingxia 已提交
1961
  let stat = fileio.statSync(path)
Z
zengyawen 已提交
1962
  fileio.chown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
1963
      // do something
Z
zengyawen 已提交
1964 1965 1966 1967 1968 1969 1970 1971 1972 1973
  });
  ```


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

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

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

1974 1975
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1976
**参数:**
H
haonan_7 已提交
1977

Z
zengyawen 已提交
1978 1979 1980 1981 1982
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待改变文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
1983

Z
zhangxingxia 已提交
1984
**示例:**
H
haonan_7 已提交
1985

Z
zhangxingxia 已提交
1986
  ```js
Z
zhangxingxia 已提交
1987
  let stat = fileio.statSync(path)
Z
zengyawen 已提交
1988 1989 1990 1991 1992 1993 1994 1995
  fileio.chownSync(path, stat.uid, stat.gid);
  ```


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

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

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

1998 1999
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2000
**参数:**
H
haonan_7 已提交
2001 2002 2003 2004

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

Z
zhangxingxia 已提交
2006
**返回值:**
H
haonan_7 已提交
2007 2008 2009 2010

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

Z
zhangxingxia 已提交
2012
**示例:**
H
haonan_7 已提交
2013

Z
zhangxingxia 已提交
2014 2015
  ```js
  fileio.mkdtemp(path + "XXXX").then(function(path){
H
haonan_7 已提交
2016
      console.info("mkdtemp succeed:"+ path);
Z
zhangxingxia 已提交
2017 2018 2019
  }).catch(function(err){
      console.info("mkdtemp failed with error:"+ err);
  });
Z
zengyawen 已提交
2020 2021 2022 2023 2024 2025 2026
  ```


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

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

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

2029 2030
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2031
**参数:**
H
haonan_7 已提交
2032 2033 2034 2035 2036

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

Z
zhangxingxia 已提交
2038
**示例:**
H
haonan_7 已提交
2039

Z
zhangxingxia 已提交
2040
  ```js
Z
zengyawen 已提交
2041
  fileio.mkdtemp(path + "XXXX", function (err, res) {
Z
zhangxingxia 已提交
2042
      // do something
Z
zengyawen 已提交
2043 2044 2045 2046 2047 2048 2049 2050 2051 2052
  });
  ```


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

mkdtempSync(prefix: string): string

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

2053 2054
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2055
**参数:**
H
haonan_7 已提交
2056 2057 2058 2059

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

Z
zhangxingxia 已提交
2061
**返回值:**
H
haonan_7 已提交
2062 2063 2064 2065

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

Z
zhangxingxia 已提交
2067
**示例:**
H
haonan_7 已提交
2068

Z
zhangxingxia 已提交
2069
  ```js
Z
zengyawen 已提交
2070 2071 2072 2073 2074 2075 2076 2077
  let res = fileio.mkdtempSync(path + "XXXX");
  ```


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

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

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

2080 2081
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2082
**参数:**
H
haonan_7 已提交
2083 2084 2085 2086 2087

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

Z
zhangxingxia 已提交
2089
**返回值:**
H
haonan_7 已提交
2090 2091 2092 2093

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

Z
zhangxingxia 已提交
2095
**示例:**
H
haonan_7 已提交
2096

Z
zhangxingxia 已提交
2097
  ```js
2098 2099
  let fd = fileio.openSync(path);
  let mode = 0o700;
Z
zhangxingxia 已提交
2100
  fileio.fchmod(fd, mode).then(function() {
H
haonan_7 已提交
2101
      console.info("chmod succeed");
Z
zhangxingxia 已提交
2102 2103
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
2104 2105 2106 2107 2108 2109 2110 2111
  });
  ```


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

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

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

2114 2115
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2116
**参数:**
H
haonan_7 已提交
2117 2118 2119 2120 2121 2122

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

Z
zhangxingxia 已提交
2124
**示例:**
H
haonan_7 已提交
2125

Z
zhangxingxia 已提交
2126
  ```js
2127 2128
  let fd = fileio.openSync(path);
  let mode = 0o700;
Z
zengyawen 已提交
2129
  fileio.fchmod(fd, mode, function (err) {
Z
zhangxingxia 已提交
2130
      // do something
Z
zengyawen 已提交
2131 2132 2133 2134 2135 2136
  });
  ```


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

2137
fchmodSync(fd: number, mode: number): void
Z
zengyawen 已提交
2138 2139 2140

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

2141 2142
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2143
**参数:**
H
haonan_7 已提交
2144 2145 2146 2147 2148

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

Z
zhangxingxia 已提交
2150
**示例:**
H
haonan_7 已提交
2151

Z
zhangxingxia 已提交
2152
  ```js
2153 2154
  let fd = fileio.openSync(path);
  let mode = 0o700;
W
wangbo 已提交
2155
   fileio.fchmodSync(fd, mode);
Z
zengyawen 已提交
2156 2157 2158 2159 2160 2161 2162
  ```


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

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

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

2165 2166
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2167
**参数:**
H
haonan_7 已提交
2168

Z
zengyawen 已提交
2169 2170 2171 2172
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
2173

Z
zhangxingxia 已提交
2174
**返回值:**
H
haonan_7 已提交
2175 2176 2177 2178

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

Z
zhangxingxia 已提交
2180
**示例:**
H
haonan_7 已提交
2181

Z
zhangxingxia 已提交
2182 2183
  ```js
  fileio.createStream(path, "r+").then(function(stream){
H
haonan_7 已提交
2184
      console.info("createStream succeed");
Z
zhangxingxia 已提交
2185 2186 2187
  }).catch(function(err){
      console.info("createStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2188 2189 2190 2191 2192 2193 2194
  ```


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

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

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

2197 2198
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2199
**参数:**
H
haonan_7 已提交
2200

Z
zengyawen 已提交
2201 2202 2203 2204 2205
| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
2206

Z
zhangxingxia 已提交
2207
**示例:**
H
haonan_7 已提交
2208

Z
zhangxingxia 已提交
2209
  ```js
Z
zhangxingxia 已提交
2210
  fileio.createStream(path, "r+", function(err, stream){
Z
zhangxingxia 已提交
2211
      // do something
Z
zengyawen 已提交
2212 2213 2214 2215 2216 2217 2218 2219 2220 2221
  });
  ```


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

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

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

2222 2223
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2224
**参数:**
H
haonan_7 已提交
2225

Z
zengyawen 已提交
2226 2227 2228 2229
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
2230

Z
zhangxingxia 已提交
2231
**返回值:**
H
haonan_7 已提交
2232 2233 2234 2235

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

Z
zhangxingxia 已提交
2237
**示例:**
H
haonan_7 已提交
2238

Z
zhangxingxia 已提交
2239
  ```js
Z
zengyawen 已提交
2240 2241 2242 2243 2244 2245 2246 2247
  let ss = fileio.createStreamSync(path, "r+");
  ```


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

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

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

2250 2251
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2252
**参数:**
H
haonan_7 已提交
2253 2254 2255 2256 2257

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

Z
zhangxingxia 已提交
2259
**返回值:**
H
haonan_7 已提交
2260 2261 2262 2263

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

Z
zhangxingxia 已提交
2265
**示例:**
H
haonan_7 已提交
2266

Z
zhangxingxia 已提交
2267
  ```js
Z
zhangxingxia 已提交
2268 2269
  let fd = fileio.openSync(path);
  fileio.fdopenStream(fd, "r+").then(function(stream){
H
haonan_7 已提交
2270
      console.info("openStream succeed");
Z
zhangxingxia 已提交
2271 2272 2273
  }).catch(function(err){
      console.info("openStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2274 2275 2276 2277 2278 2279 2280
  ```


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

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

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

2283 2284
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2285
**参数:**
H
haonan_7 已提交
2286 2287 2288 2289 2290 2291

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

Z
zhangxingxia 已提交
2293
**示例:**
H
haonan_7 已提交
2294

Z
zhangxingxia 已提交
2295
  ```js
Z
zhangxingxia 已提交
2296 2297
  let fd = fileio.openSync(path);
  fileio.fdopenStream(fd, "r+", function (err, stream) {
Z
zhangxingxia 已提交
2298
      // do something
Z
zengyawen 已提交
2299 2300 2301 2302 2303 2304 2305 2306 2307 2308
  });
  ```


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

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

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

2309 2310
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2311
**参数:**
H
haonan_7 已提交
2312 2313 2314 2315 2316

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

Z
zhangxingxia 已提交
2318
**返回值:**
H
haonan_7 已提交
2319 2320 2321 2322

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

Z
zhangxingxia 已提交
2324
**示例:**
H
haonan_7 已提交
2325

Z
zhangxingxia 已提交
2326
  ```js
Z
zhangxingxia 已提交
2327
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
2328 2329 2330 2331 2332 2333 2334 2335
  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 已提交
2336
基于文件描述符改变文件所有者,使用Promise异步回调。
Z
zengyawen 已提交
2337

2338 2339
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2340
**参数:**
H
haonan_7 已提交
2341 2342 2343 2344 2345 2346

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

Z
zhangxingxia 已提交
2348
**返回值:**
H
haonan_7 已提交
2349 2350 2351 2352

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

Z
zhangxingxia 已提交
2354
**示例:**
H
haonan_7 已提交
2355

Z
zhangxingxia 已提交
2356
  ```js
2357
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
2358
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2359
  fileio.fchown(fd, stat.uid, stat.gid).then(function() {
H
haonan_7 已提交
2360
      console.info("chown succeed");
Z
zhangxingxia 已提交
2361 2362
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
Z
zengyawen 已提交
2363 2364 2365 2366 2367 2368 2369 2370
  });
  ```


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

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

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

2373 2374
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2375
**参数:**
H
haonan_7 已提交
2376 2377 2378 2379 2380 2381 2382

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

Z
zhangxingxia 已提交
2384
**示例:**
H
haonan_7 已提交
2385

Z
zhangxingxia 已提交
2386
  ```js
2387
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
2388
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
2389
  fileio.fchown(fd, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2390
      // do something
Z
zengyawen 已提交
2391 2392 2393 2394 2395 2396 2397 2398 2399 2400
  });
  ```


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

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

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

2401 2402
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2403
**参数:**
H
haonan_7 已提交
2404 2405 2406 2407 2408 2409

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

Z
zhangxingxia 已提交
2411
**示例:**
H
haonan_7 已提交
2412

Z
zhangxingxia 已提交
2413
  ```js
2414
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
2415
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
2416 2417 2418 2419 2420 2421 2422 2423
  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 已提交
2424
基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是符号链接所指向的实际文件,使用Promise异步回调。
Z
zengyawen 已提交
2425

2426 2427
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2428
**参数:**
H
haonan_7 已提交
2429

Z
zengyawen 已提交
2430 2431 2432 2433 2434
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待打开文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
2435

Z
zhangxingxia 已提交
2436
**返回值:**
H
haonan_7 已提交
2437 2438 2439 2440

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

Z
zhangxingxia 已提交
2442
**示例:**
H
haonan_7 已提交
2443

Z
zhangxingxia 已提交
2444
  ```js
Z
zengyawen 已提交
2445
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2446
  fileio.lchown(path, stat.uid, stat.gid).then(function() {
H
haonan_7 已提交
2447
      console.info("chown succeed");
Z
zhangxingxia 已提交
2448 2449 2450
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
2451 2452 2453 2454 2455 2456 2457
  ```


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

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

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

2460 2461
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2462
**参数:**
H
haonan_7 已提交
2463

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

Z
zhangxingxia 已提交
2471
**示例:**
H
haonan_7 已提交
2472

Z
zhangxingxia 已提交
2473
  ```js
Z
zengyawen 已提交
2474 2475
  let stat = fileio.statSync(path);
  fileio.lchown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2476
      // do something
Z
zengyawen 已提交
2477 2478 2479 2480 2481 2482 2483 2484 2485 2486
  });
  ```


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

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

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

2487 2488
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2489
**参数:**
H
haonan_7 已提交
2490

Z
zengyawen 已提交
2491 2492 2493 2494 2495
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待打开文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
2496

Z
zhangxingxia 已提交
2497
**示例:**
H
haonan_7 已提交
2498

Z
zhangxingxia 已提交
2499
  ```js
Z
zengyawen 已提交
2500 2501 2502 2503 2504 2505 2506 2507 2508
  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 已提交
2509
监听文件或者目录的变化,使用callback异步回调。
Z
zengyawen 已提交
2510

2511 2512
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2513
**参数:**
H
haonan_7 已提交
2514

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

Z
zhangxingxia 已提交
2521
**返回值:**
H
haonan_7 已提交
2522 2523 2524 2525

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

Z
zhangxingxia 已提交
2527
**示例:**
H
haonan_7 已提交
2528

Z
zhangxingxia 已提交
2529
  ```js
Z
zhangxingxia 已提交
2530 2531
  let filename = path +"/test.txt";
  fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2532
     console.info("Monitoring times: "+number);
Z
zengyawen 已提交
2533
  });
Z
zhangxingxia 已提交
2534
  
Z
zengyawen 已提交
2535 2536 2537 2538 2539 2540 2541
  ```


## Readout

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

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

H
HelloCrease 已提交
2544 2545 2546 2547 2548
| 名称        | 参数类型       | 可读   | 可写   | 说明                |
| --------- | ---------- | ---- | ---- | ----------------- |
| bytesRead | number     | 是    | 是    | 实际读取长度。           |
| offset    | number     | 是    | 是    | 读取数据相对于缓冲区首地址的偏移。 |
| buffer    | ArrayBufer | 是    | 是    | 保存读取数据的缓冲区。       |
Z
zengyawen 已提交
2549 2550 2551 2552 2553


## Stat

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

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

Z
zengyawen 已提交
2557
### 属性
Z
zengyawen 已提交
2558

H
HelloCrease 已提交
2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572
| 名称     | 参数类型   | 可读   | 可写   | 说明                                       |
| ------ | ------ | ---- | ---- | ---------------------------------------- |
| 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 已提交
2573 2574


Z
zengyawen 已提交
2575
### isBlockDevice
Z
zengyawen 已提交
2576

Z
zengyawen 已提交
2577
isBlockDevice(): boolean
Z
zengyawen 已提交
2578

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

2581 2582
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2583
**返回值:**
H
haonan_7 已提交
2584 2585 2586 2587

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

Z
zhangxingxia 已提交
2589
**示例:**
H
haonan_7 已提交
2590

Z
zhangxingxia 已提交
2591
  ```js
Z
zengyawen 已提交
2592 2593
  let isBLockDevice = fileio.statSync(path).isBlockDevice();
  ```
Z
zengyawen 已提交
2594 2595


Z
zengyawen 已提交
2596
### isCharacterDevice
Z
zengyawen 已提交
2597

Z
zengyawen 已提交
2598
isCharacterDevice(): boolean
Z
zengyawen 已提交
2599

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

2602 2603
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2604
**返回值:**
H
haonan_7 已提交
2605 2606 2607 2608

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

Z
zhangxingxia 已提交
2610
**示例:**
H
haonan_7 已提交
2611

Z
zhangxingxia 已提交
2612
  ```js
Z
zengyawen 已提交
2613 2614
  let isCharacterDevice = fileio.statSync(path).isCharacterDevice();
  ```
Z
zengyawen 已提交
2615 2616


Z
zengyawen 已提交
2617
### isDirectory
Z
zengyawen 已提交
2618

Z
zengyawen 已提交
2619
isDirectory(): boolean
Z
zengyawen 已提交
2620

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

2623 2624
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2625
**返回值:**
H
haonan_7 已提交
2626 2627 2628 2629

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

Z
zhangxingxia 已提交
2631
**示例:**
H
haonan_7 已提交
2632

Z
zhangxingxia 已提交
2633
  ```js
Z
zengyawen 已提交
2634
  let isDirectory = fileio.statSync(path).isDirectory(); 
Z
zengyawen 已提交
2635
  ```
Z
zengyawen 已提交
2636 2637


Z
zengyawen 已提交
2638
### isFIFO
Z
zengyawen 已提交
2639

Z
zengyawen 已提交
2640
isFIFO(): boolean
Z
zengyawen 已提交
2641

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

2644 2645
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2646
**返回值:**
H
haonan_7 已提交
2647 2648 2649 2650

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

Z
zhangxingxia 已提交
2652
**示例:**
H
haonan_7 已提交
2653

Z
zhangxingxia 已提交
2654
  ```js
Z
zengyawen 已提交
2655
  let isFIFO = fileio.statSync(path).isFIFO(); 
Z
zengyawen 已提交
2656
  ```
Z
zengyawen 已提交
2657 2658


Z
zengyawen 已提交
2659
### isFile
Z
zengyawen 已提交
2660

Z
zengyawen 已提交
2661
isFile(): boolean
Z
zengyawen 已提交
2662

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

2665 2666
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2667
**返回值:**
H
haonan_7 已提交
2668 2669 2670 2671

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

Z
zhangxingxia 已提交
2673
**示例:**
H
haonan_7 已提交
2674

Z
zhangxingxia 已提交
2675
  ```js
Z
zhangxingxia 已提交
2676
  let isFile = fileio.statSync(path).isFile();
Z
zengyawen 已提交
2677
  ```
Z
zengyawen 已提交
2678 2679


Z
zengyawen 已提交
2680
### isSocket
Z
zengyawen 已提交
2681

Z
zengyawen 已提交
2682
isSocket(): boolean
Z
zengyawen 已提交
2683

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

2686 2687
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2688
**返回值:**
H
haonan_7 已提交
2689 2690 2691 2692

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

Z
zhangxingxia 已提交
2694
**示例:**
H
haonan_7 已提交
2695

Z
zhangxingxia 已提交
2696
  ```js
Z
zengyawen 已提交
2697 2698
  let isSocket = fileio.statSync(path).isSocket(); 
  ```
Z
zengyawen 已提交
2699 2700


Z
zengyawen 已提交
2701
### isSymbolicLink
Z
zengyawen 已提交
2702

Z
zengyawen 已提交
2703
isSymbolicLink(): boolean
Z
zengyawen 已提交
2704

Z
zhangxingxia 已提交
2705
用于判断文件是否是符号链接。
Z
zengyawen 已提交
2706

2707 2708
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2709
**返回值:**
H
haonan_7 已提交
2710 2711 2712 2713

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示文件是否是符号链接。 |
Z
zengyawen 已提交
2714

Z
zhangxingxia 已提交
2715
**示例:**
H
haonan_7 已提交
2716

Z
zhangxingxia 已提交
2717
  ```js
Z
zengyawen 已提交
2718 2719
  let isSymbolicLink = fileio.statSync(path).isSymbolicLink(); 
  ```
Z
zengyawen 已提交
2720 2721


Z
zengyawen 已提交
2722 2723 2724 2725 2726 2727 2728
## Watcher<sup>7+</sup>

Watcher是文件变化监听的实例,调用Watcher.stop()方法(同步或异步)来停止文件监听。


### stop<sup>7+</sup>

2729
stop(): Promise&lt;void&gt;
Z
zengyawen 已提交
2730

H
haonan_7 已提交
2731
关闭watcher监听,使用Promise异步回调。
Z
zengyawen 已提交
2732

2733 2734
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2735
**示例:**
H
haonan_7 已提交
2736

Z
zhangxingxia 已提交
2737
  ```js
Z
zhangxingxia 已提交
2738
  let filename = path +"/test.txt";
R
raoxian 已提交
2739
  let watcher = fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2740
      console.info("Monitoring times: "+number);
Z
zhangxingxia 已提交
2741 2742
  });
  watcher.stop().then(function(){
Z
zhangxingxia 已提交
2743
       console.info("close watcher succeed");
Z
zhangxingxia 已提交
2744
  });
Z
zengyawen 已提交
2745 2746 2747 2748 2749
  ```


### stop<sup>7+</sup>

2750
stop(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
2751

H
haonan_7 已提交
2752
关闭watcher监听,使用callback异步回调。
Z
zengyawen 已提交
2753

2754 2755
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2756
**参数:**
H
haonan_7 已提交
2757 2758 2759 2760

  | 参数名      | 类型                        | 必填   | 说明                     |
  | -------- | ------------------------- | ---- | ---------------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 以异步方法关闭watcher监听之后的回调。 |
Z
zengyawen 已提交
2761

Z
zhangxingxia 已提交
2762
**示例:**
H
haonan_7 已提交
2763

Z
zhangxingxia 已提交
2764
  ```js
Z
zhangxingxia 已提交
2765
  let filename = path +"/test.txt";
R
raoxian 已提交
2766
  let watcher = fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2767
      console.info("Monitoring times: "+number);
Z
zengyawen 已提交
2768
  });
Z
zhangxingxia 已提交
2769 2770 2771
  watcher.stop(function(){
      console.info("close watcher succeed");
  })
Z
zengyawen 已提交
2772 2773 2774
  ```


Z
zhangxingxia 已提交
2775
## Stream
Z
zengyawen 已提交
2776

Z
zengyawen 已提交
2777 2778 2779 2780 2781 2782 2783
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。


### close<sup>7+</sup>

close(): Promise&lt;void&gt;

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

2786 2787
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2788
**返回值:**
H
haonan_7 已提交
2789 2790 2791 2792

  | 类型                  | 说明            |
  | ------------------- | ------------- |
  | Promise&lt;void&gt; | Promise对象。返回表示异步关闭文件流的结果。 |
Z
zengyawen 已提交
2793

Z
zhangxingxia 已提交
2794
**示例:**
H
haonan_7 已提交
2795

Z
zhangxingxia 已提交
2796
  ```js
Z
zhangxingxia 已提交
2797
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2798
  ss.close().then(function(){
H
haonan_7 已提交
2799
      console.info("close fileStream succeed");
Z
zhangxingxia 已提交
2800 2801 2802
  }).catch(function(err){
      console.info("close fileStream  failed with error:"+ err);
  });
Z
zengyawen 已提交
2803 2804 2805 2806 2807 2808 2809
  ```


### close<sup>7+</sup>

close(callback: AsyncCallback&lt;void&gt;): void

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

2812 2813
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2814
**参数:**
H
haonan_7 已提交
2815 2816 2817 2818

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

Z
zhangxingxia 已提交
2820
**示例:**
H
haonan_7 已提交
2821

Z
zhangxingxia 已提交
2822
  ```js
Z
zhangxingxia 已提交
2823
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2824
  ss.close(function (err) {
Z
zhangxingxia 已提交
2825
      // do something
Z
zengyawen 已提交
2826 2827
  });
  ```
Z
zengyawen 已提交
2828 2829


2830
### closeSync
Z
zengyawen 已提交
2831

Z
zengyawen 已提交
2832
closeSync(): void
Z
zengyawen 已提交
2833

Z
zengyawen 已提交
2834
同步关闭文件流。
Z
zengyawen 已提交
2835

2836 2837
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2838
**示例:**
H
haonan_7 已提交
2839

Z
zhangxingxia 已提交
2840
  ```js
Z
zhangxingxia 已提交
2841
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2842 2843
  ss.closeSync();
  ```
Z
zengyawen 已提交
2844 2845


Z
zengyawen 已提交
2846 2847 2848 2849
### flush<sup>7+</sup>

flush(): Promise&lt;void&gt;

H
haonan_7 已提交
2850
刷新文件流,使用Promise异步回调。
Z
zengyawen 已提交
2851

2852 2853
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2854
**返回值:**
H
haonan_7 已提交
2855 2856 2857 2858

  | 类型                  | 说明            |
  | ------------------- | ------------- |
  | Promise&lt;void&gt; | Promise对象。返回表示异步刷新文件流的结果。 |
Z
zengyawen 已提交
2859

Z
zhangxingxia 已提交
2860
**示例:**
H
haonan_7 已提交
2861

Z
zhangxingxia 已提交
2862
  ```js
Z
zhangxingxia 已提交
2863
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2864
  ss.flush().then(function (){
H
haonan_7 已提交
2865
      console.info("flush succeed");
Z
zhangxingxia 已提交
2866 2867 2868
  }).catch(function(err){
      console.info("flush failed with error:"+ err);
  });
Z
zengyawen 已提交
2869 2870 2871 2872 2873 2874 2875
  ```


### flush<sup>7+</sup>

flush(callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2876
异步刷新文件流,使用callback异步回调。
Z
zengyawen 已提交
2877

2878 2879
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2880
**参数:**
H
haonan_7 已提交
2881 2882 2883 2884

  | 参数名      | 类型                        | 必填   | 说明             |
  | -------- | ------------------------- | ---- | -------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步刷新文件流后的回调函数。 |
Z
zengyawen 已提交
2885

Z
zhangxingxia 已提交
2886
**示例:**
H
haonan_7 已提交
2887

Z
zhangxingxia 已提交
2888
  ```js
Z
zhangxingxia 已提交
2889
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2890
  ss.flush(function (err) {
Z
zhangxingxia 已提交
2891
      // do something
Z
zengyawen 已提交
2892 2893 2894 2895
  });
  ```


Z
zengyawen 已提交
2896
### flushSync<sup>7+</sup>
Z
zengyawen 已提交
2897

Z
zengyawen 已提交
2898
flushSync(): void
Z
zengyawen 已提交
2899

Z
zengyawen 已提交
2900
同步刷新文件流。
Z
zengyawen 已提交
2901

2902 2903
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2904
**示例:**
H
haonan_7 已提交
2905

Z
zhangxingxia 已提交
2906
  ```js
Z
zhangxingxia 已提交
2907
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2908 2909
  ss.flushSync();
  ```
Z
zengyawen 已提交
2910 2911


Z
zengyawen 已提交
2912 2913
### write<sup>7+</sup>

2914 2915 2916 2917 2918 2919
write(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
2920

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

2923 2924
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2925
**参数:**
H
haonan_7 已提交
2926 2927 2928 2929 2930

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

Z
zhangxingxia 已提交
2932
**返回值:**
H
haonan_7 已提交
2933 2934 2935 2936

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

Z
zhangxingxia 已提交
2938
**示例:**
H
haonan_7 已提交
2939

Z
zhangxingxia 已提交
2940
  ```js
Z
zhangxingxia 已提交
2941
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2942
  ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
H
haonan_7 已提交
2943
      console.info("write succeed and size is:"+ number);
Z
zhangxingxia 已提交
2944 2945 2946
  }).catch(function(err){
      console.info("write failed with error:"+ err);
  });
Z
zengyawen 已提交
2947 2948 2949 2950 2951
  ```


### write<sup>7+</sup>

2952 2953 2954 2955 2956 2957
write(buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
2958

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

2961 2962
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2963
**参数:**
H
haonan_7 已提交
2964 2965 2966 2967 2968 2969

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

Z
zhangxingxia 已提交
2971
**示例:**
H
haonan_7 已提交
2972

Z
zhangxingxia 已提交
2973
  ```js
Z
zhangxingxia 已提交
2974
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2975
  ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
Z
zhangxingxia 已提交
2976
      if (bytesWritten) {
Z
zhangxingxia 已提交
2977
         // do something
H
haonan_7 已提交
2978
         console.info("write succeed and size is:"+ bytesWritten);
Z
zengyawen 已提交
2979 2980 2981 2982 2983
      }
  });
  ```


Z
zengyawen 已提交
2984
### writeSync<sup>7+</sup>
Z
zengyawen 已提交
2985

2986 2987 2988 2989 2990 2991
writeSync(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
2992

Z
zengyawen 已提交
2993
以同步方法将数据写入流文件。
Z
zengyawen 已提交
2994

2995 2996
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2997
**参数:**
H
haonan_7 已提交
2998 2999 3000 3001 3002

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

Z
zhangxingxia 已提交
3004
**返回值:**
H
haonan_7 已提交
3005 3006 3007 3008

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

Z
zhangxingxia 已提交
3010
**示例:**
H
haonan_7 已提交
3011

Z
zhangxingxia 已提交
3012
  ```js
Z
zhangxingxia 已提交
3013
  let ss= fileio.createStreamSync(path,"r+");
Z
zengyawen 已提交
3014 3015 3016 3017 3018 3019
  let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});
  ```


### read<sup>7+</sup>

3020 3021 3022 3023 3024
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
3025

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

3028 3029
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3030
**参数:**
H
haonan_7 已提交
3031 3032 3033 3034 3035

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

Z
zhangxingxia 已提交
3037
**返回值:**
H
haonan_7 已提交
3038 3039 3040 3041

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

Z
zhangxingxia 已提交
3043
**示例:**
H
haonan_7 已提交
3044

Z
zhangxingxia 已提交
3045
  ```js
Z
zhangxingxia 已提交
3046
  let ss = fileio.createStreamSync(path, "r+");
3047
  ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readOut){
H
haonan_7 已提交
3048
      console.info("read data succeed");
W
wangbo 已提交
3049
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
3050 3051 3052
  }).catch(function(err){
      console.info("read data failed with error:"+ err);
  });
Z
zengyawen 已提交
3053 3054 3055 3056 3057
  ```


### read<sup>7+</sup>

3058 3059 3060 3061 3062
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
3063

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

3066 3067
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3068
**参数:**
H
haonan_7 已提交
3069 3070 3071 3072 3073 3074

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

Z
zhangxingxia 已提交
3076
**示例:**
H
haonan_7 已提交
3077

Z
zhangxingxia 已提交
3078
  ```js
Z
zhangxingxia 已提交
3079
  let ss = fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
3080
  ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
Z
zhangxingxia 已提交
3081
      if (readOut) {
H
haonan_7 已提交
3082
          console.info("read data succeed");
Z
zhangxingxia 已提交
3083
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
3084 3085
      }
  });
Z
zengyawen 已提交
3086
  ```
Z
zengyawen 已提交
3087 3088


Z
zengyawen 已提交
3089
### readSync<sup>7+</sup>
Z
zengyawen 已提交
3090

3091 3092 3093 3094 3095
readSync(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): number
Z
zengyawen 已提交
3096 3097 3098

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

3099 3100
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3101
**参数:**
Z
zhangxingxia 已提交
3102

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

Z
zhangxingxia 已提交
3108
**返回值:**
Z
zhangxingxia 已提交
3109

H
haonan_7 已提交
3110 3111 3112
  | 类型     | 说明       |
  | ------ | -------- |
  | number | 实际读取的长度。 |
Z
zhangxingxia 已提交
3113

Z
zhangxingxia 已提交
3114
**示例:**
H
haonan_7 已提交
3115

Z
zhangxingxia 已提交
3116
  ```js
Z
zhangxingxia 已提交
3117
  let ss = fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
3118
  let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});
Z
zengyawen 已提交
3119
  ```
Z
zengyawen 已提交
3120 3121


Z
zengyawen 已提交
3122
## Dir
Z
zengyawen 已提交
3123

3124
管理目录,在调用Dir的方法前,需要先通过opendir方法(同步或异步)来构建一个Dir实例。
Z
zengyawen 已提交
3125 3126 3127 3128 3129 3130


### read

read(): Promise&lt;Dirent&gt;

H
haonan_7 已提交
3131
读取下一个目录项,使用Promise异步回调。
Z
zengyawen 已提交
3132

3133 3134
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3135
**返回值:**
H
haonan_7 已提交
3136 3137 3138 3139

  | 类型                               | 说明            |
  | -------------------------------- | ------------- |
  | Promise&lt;[Dirent](#dirent)&gt; | Promise对象。返回表示异步读取目录项的结果。 |
Z
zengyawen 已提交
3140

Z
zhangxingxia 已提交
3141
**示例:**
H
haonan_7 已提交
3142

Z
zhangxingxia 已提交
3143 3144
  ```js
  dir.read().then(function (dirent){
H
haonan_7 已提交
3145
      console.log("read succeed:"+JSON.stringify(dirent));
Z
zhangxingxia 已提交
3146 3147 3148
  }).catch(function(err){
      console.info("read failed with error:"+ err);
  });
Z
zengyawen 已提交
3149 3150 3151 3152 3153 3154 3155
  ```


### read

read(callback: AsyncCallback&lt;Dirent&gt;): void

H
haonan_7 已提交
3156
读取下一个目录项,使用callback异步回调。
Z
zengyawen 已提交
3157

3158 3159
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3160
**参数:**
H
haonan_7 已提交
3161 3162 3163 3164

  | 参数名      | 类型                                     | 必填   | 说明               |
  | -------- | -------------------------------------- | ---- | ---------------- |
  | callback | AsyncCallback&lt;[Dirent](#dirent)&gt; | 是    | 异步读取下一个目录项之后的回调。 |
Z
zengyawen 已提交
3165

Z
zhangxingxia 已提交
3166
**示例:**
H
haonan_7 已提交
3167

Z
zhangxingxia 已提交
3168
  ```js
Z
zengyawen 已提交
3169
  dir.read(function (err, dirent) {
Z
zhangxingxia 已提交
3170
      if (dirent) {
Z
zhangxingxia 已提交
3171
          // do something
H
haonan_7 已提交
3172
          console.log("read succeed:"+JSON.stringify(dirent));
Z
zengyawen 已提交
3173 3174 3175
      }
  });
  ```
Z
zengyawen 已提交
3176 3177


Z
zengyawen 已提交
3178
### readSync
Z
zengyawen 已提交
3179

Z
zengyawen 已提交
3180
readSync(): Dirent
Z
zengyawen 已提交
3181

Z
zengyawen 已提交
3182
同步读取下一个目录项。
Z
zengyawen 已提交
3183

3184 3185
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3186
**返回值:**
H
haonan_7 已提交
3187 3188 3189 3190

  | 类型                | 说明       |
  | ----------------- | -------- |
  | [Dirent](#dirent) | 表示一个目录项。 |
Z
zengyawen 已提交
3191

Z
zhangxingxia 已提交
3192
**示例:**
H
haonan_7 已提交
3193

Z
zhangxingxia 已提交
3194
  ```js
Z
zengyawen 已提交
3195 3196
  let dirent = dir.readSync();
  ```
Z
zengyawen 已提交
3197 3198


W
wangbo 已提交
3199 3200 3201 3202 3203 3204 3205 3206 3207
### close<sup>7+</sup>

close(): Promise&lt;void&gt;

异步关闭目录,使用promise形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。

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

**示例:**
H
haonan_7 已提交
3208

W
wangbo 已提交
3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224
  ```js
  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 已提交
3225

W
wangbo 已提交
3226 3227 3228 3229 3230 3231 3232
  ```js
  dir.close(function(err){
      console.info("close dir successfully");
  });
  ```


Z
zengyawen 已提交
3233
### closeSync
Z
zengyawen 已提交
3234

Z
zengyawen 已提交
3235
closeSync(): void
Z
zengyawen 已提交
3236

Z
zengyawen 已提交
3237
用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
Z
zengyawen 已提交
3238

3239 3240
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3241
**示例:**
H
haonan_7 已提交
3242

Z
zhangxingxia 已提交
3243
  ```js
Z
zengyawen 已提交
3244 3245
  dir.closeSync();
  ```
Z
zengyawen 已提交
3246 3247


Z
zengyawen 已提交
3248
## Dirent
Z
zengyawen 已提交
3249

Z
zengyawen 已提交
3250
在调用Dirent的方法前,需要先通过[dir.read()](#read)方法(同步或异步)来构建一个Dirent实例。
Z
zengyawen 已提交
3251

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

Z
zengyawen 已提交
3254
### 属性
Z
zengyawen 已提交
3255

H
HelloCrease 已提交
3256 3257 3258
| 名称   | 参数类型   | 可读   | 可写   | 说明      |
| ---- | ------ | ---- | ---- | ------- |
| name | string | 是    | 否    | 目录项的名称。 |
Z
zengyawen 已提交
3259 3260


Z
zengyawen 已提交
3261
### isBlockDevice
Z
zengyawen 已提交
3262

Z
zengyawen 已提交
3263
isBlockDevice(): boolean
Z
zengyawen 已提交
3264

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

3267 3268
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3269
**返回值:**
H
haonan_7 已提交
3270 3271 3272 3273

  | 类型      | 说明               |
  | ------- | ---------------- |
  | boolean | 表示当前目录项是否是块特殊设备。 |
Z
zengyawen 已提交
3274

Z
zhangxingxia 已提交
3275
**示例:**
H
haonan_7 已提交
3276

Z
zhangxingxia 已提交
3277
  ```js
W
wangbo 已提交
3278
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3279 3280
  let isBLockDevice = dir.readSync().isBlockDevice();
  ```
Z
zengyawen 已提交
3281 3282


Z
zengyawen 已提交
3283
### isCharacterDevice
Z
zengyawen 已提交
3284

Z
zengyawen 已提交
3285
isCharacterDevice(): boolean
Z
zengyawen 已提交
3286

Z
zhangxingxia 已提交
3287
用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
Z
zengyawen 已提交
3288

3289 3290
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3291
**返回值:**
H
haonan_7 已提交
3292 3293 3294 3295

  | 类型      | 说明                |
  | ------- | ----------------- |
  | boolean | 表示当前目录项是否是字符特殊设备。 |
Z
zengyawen 已提交
3296

Z
zhangxingxia 已提交
3297
**示例:**
H
haonan_7 已提交
3298

Z
zhangxingxia 已提交
3299
  ```js
W
wangbo 已提交
3300
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3301 3302
  let isCharacterDevice = dir.readSync().isCharacterDevice(); 
  ```
Z
zengyawen 已提交
3303 3304


Z
zengyawen 已提交
3305
### isDirectory
Z
zengyawen 已提交
3306

Z
zengyawen 已提交
3307
isDirectory(): boolean
Z
zengyawen 已提交
3308

Z
zhangxingxia 已提交
3309
用于判断当前目录项是否是目录。
Z
zengyawen 已提交
3310

3311 3312
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3313
**返回值:**
H
haonan_7 已提交
3314 3315 3316 3317

  | 类型      | 说明            |
  | ------- | ------------- |
  | boolean | 表示当前目录项是否是目录。 |
Z
zengyawen 已提交
3318

Z
zhangxingxia 已提交
3319
**示例:**
H
haonan_7 已提交
3320

Z
zhangxingxia 已提交
3321
  ```js
W
wangbo 已提交
3322
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3323 3324
  let isDirectory = dir.readSync().isDirectory(); 
  ```
Z
zengyawen 已提交
3325 3326


Z
zengyawen 已提交
3327
### isFIFO
Z
zengyawen 已提交
3328

Z
zengyawen 已提交
3329
isFIFO(): boolean
Z
zengyawen 已提交
3330

Z
zhangxingxia 已提交
3331
用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
3332

3333 3334
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3335
**返回值:**
H
haonan_7 已提交
3336 3337 3338 3339

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是FIFO。 |
Z
zengyawen 已提交
3340

Z
zhangxingxia 已提交
3341
**示例:**
H
haonan_7 已提交
3342

Z
zhangxingxia 已提交
3343
  ```js
W
wangbo 已提交
3344
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3345 3346
  let isFIFO = dir.readSync().isFIFO(); 
  ```
Z
zengyawen 已提交
3347 3348


Z
zengyawen 已提交
3349
### isFile
Z
zengyawen 已提交
3350

Z
zengyawen 已提交
3351
isFile(): boolean
Z
zengyawen 已提交
3352

Z
zhangxingxia 已提交
3353
用于判断当前目录项是否是普通文件。
Z
zengyawen 已提交
3354

3355 3356
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3357
**返回值:**
H
haonan_7 已提交
3358 3359 3360 3361

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是普通文件。 |
Z
zengyawen 已提交
3362

Z
zhangxingxia 已提交
3363
**示例:**
H
haonan_7 已提交
3364

Z
zhangxingxia 已提交
3365
  ```js
W
wangbo 已提交
3366
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3367 3368
  let isFile = dir.readSync().isFile(); 
  ```
Z
zengyawen 已提交
3369 3370


Z
zengyawen 已提交
3371
### isSocket
Z
zengyawen 已提交
3372

Z
zengyawen 已提交
3373
isSocket(): boolean
Z
zengyawen 已提交
3374

Z
zhangxingxia 已提交
3375
用于判断当前目录项是否是套接字。
Z
zengyawen 已提交
3376

3377 3378
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3379
**返回值:**
H
haonan_7 已提交
3380 3381 3382 3383

  | 类型      | 说明             |
  | ------- | -------------- |
  | boolean | 表示当前目录项是否是套接字。 |
Z
zengyawen 已提交
3384

Z
zhangxingxia 已提交
3385
**示例:**
H
haonan_7 已提交
3386

Z
zhangxingxia 已提交
3387
  ```js
3388
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3389 3390
  let isSocket = dir.readSync().isSocket(); 
  ```
Z
zengyawen 已提交
3391 3392


Z
zengyawen 已提交
3393
### isSymbolicLink
Z
zengyawen 已提交
3394

Z
zengyawen 已提交
3395
isSymbolicLink(): boolean
Z
zengyawen 已提交
3396

Z
zhangxingxia 已提交
3397
用于判断当前目录项是否是符号链接。
Z
zengyawen 已提交
3398

3399 3400
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3401
**返回值:**
H
haonan_7 已提交
3402 3403 3404 3405

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是符号链接。 |
Z
zengyawen 已提交
3406

Z
zhangxingxia 已提交
3407
**示例:**
H
haonan_7 已提交
3408

Z
zhangxingxia 已提交
3409
  ```js
W
wangbo 已提交
3410
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3411 3412
  let isSymbolicLink = dir.readSync().isSymbolicLink();
  ```