js-apis-fileio.md 124.9 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
class MainAbility extends Ability {
25
    let path = '';
26 27
    onWindowStageCreate(windowStage) {
        let context = this.context;
28
        path = context.filesDir;
29 30 31 32
    }
}
 ```

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

35
**FA模型**
36

W
wangbo 已提交
37 38 39
 ```js
 import featureAbility from '@ohos.ability.featureAbility';
 let context = featureAbility.getContext();
W
wangbo 已提交
40 41 42 43
 let path = '';
 context.getFilesDir().then((data) => {
      path = data;
 })
Z
zhangxingxia 已提交
44
 ```
45 46
 
 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 已提交
47

Z
zengyawen 已提交
48 49 50 51
## fileio.stat

stat(path: string): Promise<Stat>

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

54 55
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
56
**参数:**
Z
zhangxingxia 已提交
57

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

Z
zhangxingxia 已提交
62
**返回值:**
Z
zhangxingxia 已提交
63

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

Z
zhangxingxia 已提交
68
**示例:**
H
haonan_7 已提交
69

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


## fileio.stat

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

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

85 86
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
87
**参数:**
H
haonan_7 已提交
88

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

Z
zhangxingxia 已提交
94
**示例:**
H
haonan_7 已提交
95

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


Z
zengyawen 已提交
103 104 105
## fileio.statSync

statSync(path:string): Stat
Z
zengyawen 已提交
106 107 108

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

109 110
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
111
**参数:**
H
haonan_7 已提交
112

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


Z
zhangxingxia 已提交
118
**返回值:**
H
haonan_7 已提交
119 120 121 122

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

Z
zhangxingxia 已提交
124
**示例:**
H
haonan_7 已提交
125

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


Z
zengyawen 已提交
132
## fileio.opendir
Z
zengyawen 已提交
133

Z
zengyawen 已提交
134
opendir(path: string): Promise<Dir>
Z
zengyawen 已提交
135

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

138 139
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
140
**参数:**
H
haonan_7 已提交
141

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

Z
zhangxingxia 已提交
146
**返回值:**
H
haonan_7 已提交
147 148 149 150

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

Z
zhangxingxia 已提交
152
**示例:**
H
haonan_7 已提交
153

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


Z
zengyawen 已提交
163
## fileio.opendir
Z
zengyawen 已提交
164

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

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

169 170
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
171
**参数:**
Z
zhangxingxia 已提交
172

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

Z
zhangxingxia 已提交
178
**示例:**
H
haonan_7 已提交
179

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


Z
zengyawen 已提交
188
## fileio.opendirSync
Z
zengyawen 已提交
189

Z
zengyawen 已提交
190 191 192
opendirSync(path: string): Dir

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

194 195
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zengyawen 已提交
196

Z
zhangxingxia 已提交
197
**参数:**
Z
zhangxingxia 已提交
198

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

Z
zhangxingxia 已提交
203
**返回值:**
H
haonan_7 已提交
204 205 206 207

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

Z
zhangxingxia 已提交
209
**示例:**
H
haonan_7 已提交
210

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


Z
zengyawen 已提交
218
## fileio.access
Z
zengyawen 已提交
219

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

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

224 225
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
226
**参数:**
Z
zhangxingxia 已提交
227

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

Z
zhangxingxia 已提交
233
**返回值:**
H
haonan_7 已提交
234 235 236 237

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

Z
zhangxingxia 已提交
239
**示例:**
H
haonan_7 已提交
240

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


Z
zengyawen 已提交
250
## fileio.access
Z
zengyawen 已提交
251

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

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

256 257
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
258
**参数:**
H
haonan_7 已提交
259

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

Z
zhangxingxia 已提交
266
**示例:**
H
haonan_7 已提交
267

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


Z
zengyawen 已提交
275
## fileio.accessSync
Z
zengyawen 已提交
276

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

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

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

Z
zhangxingxia 已提交
283
**参数:**
H
haonan_7 已提交
284

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

Z
zhangxingxia 已提交
290
**示例:**
H
haonan_7 已提交
291

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


Z
zengyawen 已提交
301
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
302

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

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

307 308
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
309
**参数:**
H
haonan_7 已提交
310 311 312 313

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

Z
zhangxingxia 已提交
315
**返回值:**
H
haonan_7 已提交
316 317 318 319

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

Z
zhangxingxia 已提交
321
**示例:**
H
haonan_7 已提交
322

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


Z
zengyawen 已提交
333
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
334

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

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

339 340
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
341
**参数:**
H
haonan_7 已提交
342 343 344 345 346

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

Z
zhangxingxia 已提交
348
**示例:**
H
haonan_7 已提交
349

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


Z
zengyawen 已提交
358
## fileio.closeSync
Z
zengyawen 已提交
359

Z
zengyawen 已提交
360
closeSync(fd: number): void
Z
zengyawen 已提交
361

Z
zengyawen 已提交
362
以同步方法关闭文件。
Z
zengyawen 已提交
363

364 365
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
366
**参数:**
H
haonan_7 已提交
367 368 369 370

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

Z
zhangxingxia 已提交
372
**示例:**
H
haonan_7 已提交
373

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


Z
zengyawen 已提交
380
## fileio.copyFile
Z
zengyawen 已提交
381

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

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

386 387
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
396
**返回值:**
H
haonan_7 已提交
397 398 399 400

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

Z
zhangxingxia 已提交
402
**示例:**
H
haonan_7 已提交
403

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


Z
zengyawen 已提交
415
## fileio.copyFile
Z
zengyawen 已提交
416

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

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

421 422
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
432
**示例:**
H
haonan_7 已提交
433

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


Z
zengyawen 已提交
443
## fileio.copyFileSync
Z
zengyawen 已提交
444

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

Z
zengyawen 已提交
447
以同步方法复制文件。
Z
zengyawen 已提交
448

449 450
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
459
**示例:**
H
haonan_7 已提交
460

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


Z
zengyawen 已提交
468
## fileio.mkdir
Z
zengyawen 已提交
469

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

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

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

Z
zhangxingxia 已提交
476
**参数:**
H
haonan_7 已提交
477

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

Z
zhangxingxia 已提交
483
**返回值:**
H
haonan_7 已提交
484 485 486 487

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

Z
zhangxingxia 已提交
489
**示例:**
H
haonan_7 已提交
490

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


Z
zengyawen 已提交
500
## fileio.mkdir
Z
zengyawen 已提交
501

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

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

506 507
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
508
**参数:**
H
haonan_7 已提交
509

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

Z
zhangxingxia 已提交
516
**示例:**
H
haonan_7 已提交
517

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


Z
zengyawen 已提交
525
## fileio.mkdirSync
Z
zengyawen 已提交
526

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

Z
zengyawen 已提交
529
以同步方法创建目录。
Z
zengyawen 已提交
530

531 532
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
533
**参数:**
H
haonan_7 已提交
534

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

Z
zhangxingxia 已提交
540
**示例:**
H
haonan_7 已提交
541

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


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

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

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

553 554
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
555
**参数:**
H
haonan_7 已提交
556

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

Z
zhangxingxia 已提交
563
**返回值:**
H
haonan_7 已提交
564 565 566 567

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

Z
zhangxingxia 已提交
569
**示例:**
H
haonan_7 已提交
570

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


Z
zengyawen 已提交
580
## fileio.open<sup>7+</sup>
Z
zengyawen 已提交
581

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

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

586 587
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
588
**参数:**
H
haonan_7 已提交
589

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

Z
zhangxingxia 已提交
597
**示例:**
H
haonan_7 已提交
598

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


Z
zengyawen 已提交
606
## fileio.openSync
Z
zengyawen 已提交
607

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

Z
zengyawen 已提交
610
以同步方法打开文件。
Z
zengyawen 已提交
611

612 613
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
614
**参数:**
H
haonan_7 已提交
615

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

Z
zhangxingxia 已提交
622
**返回值:**
H
haonan_7 已提交
623 624 625 626

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

Z
zhangxingxia 已提交
628
**示例:**
H
haonan_7 已提交
629

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


Z
zengyawen 已提交
643
## fileio.read
Z
zengyawen 已提交
644

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

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

653 654
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
655
**参数:**
H
haonan_7 已提交
656

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

Z
zhangxingxia 已提交
663
**返回值:**
Z
zhangxingxia 已提交
664

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

Z
zhangxingxia 已提交
669
**示例:**
H
haonan_7 已提交
670

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


Z
zengyawen 已提交
683
## fileio.read
Z
zengyawen 已提交
684

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

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

693 694
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
704
**示例:**
H
haonan_7 已提交
705

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


Z
zengyawen 已提交
718
## fileio.readSync
Z
zengyawen 已提交
719

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

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

728 729
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
738
**返回值:**
H
haonan_7 已提交
739 740 741 742

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

Z
zhangxingxia 已提交
744
**示例:**
H
haonan_7 已提交
745

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

759 760
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
761
**参数:**
H
haonan_7 已提交
762

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

Z
zhangxingxia 已提交
767
**返回值:**
H
haonan_7 已提交
768 769 770 771

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

Z
zhangxingxia 已提交
773
**示例:**
H
haonan_7 已提交
774

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


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

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

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

790 791
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
792
**参数:**
H
haonan_7 已提交
793

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

Z
zhangxingxia 已提交
799
**示例:**
H
haonan_7 已提交
800

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


809
## fileio.rmdirSync<sup>7+</sup>
Z
zengyawen 已提交
810

811
rmdirSync(path: string): void
Z
zengyawen 已提交
812 813 814

以同步方法删除目录。

815 816
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
817
**参数:**
H
haonan_7 已提交
818

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

Z
zhangxingxia 已提交
823
**示例:**
H
haonan_7 已提交
824

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


## fileio.unlink

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

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

836 837
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
838
**参数:**
H
haonan_7 已提交
839

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

Z
zhangxingxia 已提交
844
**返回值:**
H
haonan_7 已提交
845 846 847 848

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

Z
zhangxingxia 已提交
850
**示例:**
H
haonan_7 已提交
851

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


## fileio.unlink

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

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

867 868
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
869
**参数:**
H
haonan_7 已提交
870

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

Z
zhangxingxia 已提交
876
**示例:**
H
haonan_7 已提交
877

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


## fileio.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

891 892
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
893
**参数:**
H
haonan_7 已提交
894

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

Z
zhangxingxia 已提交
899
**示例:**
H
haonan_7 已提交
900

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


## fileio.write

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

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

917 918
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
927
**返回值:**
H
haonan_7 已提交
928 929 930 931

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

Z
zhangxingxia 已提交
933
**示例:**
H
haonan_7 已提交
934

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


## fileio.write

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

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

956 957
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
967
**示例:**
H
haonan_7 已提交
968

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


## fileio.writeSync

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

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

990 991
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
1000
**返回值:**
H
haonan_7 已提交
1001 1002 1003 1004

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

Z
zhangxingxia 已提交
1006
**示例:**
H
haonan_7 已提交
1007

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

1020 1021
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1022
**参数:**
H
haonan_7 已提交
1023

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

Z
zhangxingxia 已提交
1029
**返回值:**
H
haonan_7 已提交
1030 1031 1032 1033

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

Z
zhangxingxia 已提交
1035
**示例:**
H
haonan_7 已提交
1036

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


## fileio.hash

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

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

1052 1053
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1054
**参数:**
H
haonan_7 已提交
1055

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

Z
zhangxingxia 已提交
1062
**示例:**
H
haonan_7 已提交
1063

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


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

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

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

1079 1080
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1081
**参数:**
H
haonan_7 已提交
1082

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

Z
zhangxingxia 已提交
1088
**返回值:**
H
haonan_7 已提交
1089 1090 1091 1092

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

Z
zhangxingxia 已提交
1094
**示例:**
H
haonan_7 已提交
1095

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


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

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

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

1111 1112
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1113
**参数:**
H
haonan_7 已提交
1114

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

Z
zhangxingxia 已提交
1121
**示例:**
H
haonan_7 已提交
1122

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


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

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

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

1136 1137
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1138
**参数:**
H
haonan_7 已提交
1139

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

Z
zhangxingxia 已提交
1145
**示例:**
H
haonan_7 已提交
1146

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


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

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

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

1158 1159
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1160
**参数:**
H
haonan_7 已提交
1161 1162 1163 1164

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

Z
zhangxingxia 已提交
1166
**返回值:**
H
haonan_7 已提交
1167 1168 1169 1170

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

Z
zhangxingxia 已提交
1172
**示例:**
H
haonan_7 已提交
1173

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


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

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

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

1190 1191
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1192
**参数:**
H
haonan_7 已提交
1193 1194 1195 1196 1197

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

Z
zhangxingxia 已提交
1199
**示例:**
H
haonan_7 已提交
1200

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


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

fstatSync(fd: number): Stat

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

1215 1216
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1217
**参数:**
H
haonan_7 已提交
1218 1219 1220 1221

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

Z
zhangxingxia 已提交
1223
**返回值:**
H
haonan_7 已提交
1224 1225 1226 1227

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

Z
zhangxingxia 已提交
1229
**示例:**
H
haonan_7 已提交
1230

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


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

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

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

1243 1244
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1245
**参数:**
H
haonan_7 已提交
1246 1247 1248 1249 1250

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

Z
zhangxingxia 已提交
1252
**返回值:**
H
haonan_7 已提交
1253 1254 1255 1256

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

Z
zhangxingxia 已提交
1258
**示例:**
H
haonan_7 已提交
1259

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


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

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

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

1276 1277
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
1286
**示例:**
H
haonan_7 已提交
1287

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


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

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

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

1303 1304
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1305
**参数:**
H
haonan_7 已提交
1306 1307 1308 1309 1310

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

Z
zhangxingxia 已提交
1312
**示例:**
H
haonan_7 已提交
1313

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


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

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

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

1327 1328
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1329
**参数:**
H
haonan_7 已提交
1330

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

Z
zhangxingxia 已提交
1336
**返回值:**
H
haonan_7 已提交
1337 1338 1339 1340

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

Z
zhangxingxia 已提交
1342
**示例:**
H
haonan_7 已提交
1343

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


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

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

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

1360 1361
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1362
**参数:**
H
haonan_7 已提交
1363

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

Z
zhangxingxia 已提交
1370
**示例:**
H
haonan_7 已提交
1371

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


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

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

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

1386 1387
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1388
**参数:**
H
haonan_7 已提交
1389

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

Z
zhangxingxia 已提交
1395
**示例:**
H
haonan_7 已提交
1396

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


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

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

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

1413 1414
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1415
**参数:**
H
haonan_7 已提交
1416

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

Z
zhangxingxia 已提交
1422
**返回值:**
H
haonan_7 已提交
1423 1424 1425 1426

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

Z
zhangxingxia 已提交
1428
**示例:**
H
haonan_7 已提交
1429

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


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

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

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

1449 1450
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1451
**参数:**
H
haonan_7 已提交
1452

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

Z
zhangxingxia 已提交
1459
**示例:**
H
haonan_7 已提交
1460

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


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

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

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

1478 1479
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1480
**参数:**
H
haonan_7 已提交
1481

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

Z
zhangxingxia 已提交
1487
**返回值:**
H
haonan_7 已提交
1488 1489 1490 1491

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

Z
zhangxingxia 已提交
1493
**示例:**
H
haonan_7 已提交
1494

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


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

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

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

1506 1507
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1508
**参数:**
H
haonan_7 已提交
1509

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

Z
zhangxingxia 已提交
1514
**返回值:**
H
haonan_7 已提交
1515 1516 1517 1518

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

Z
zhangxingxia 已提交
1520
**示例:**
H
haonan_7 已提交
1521

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


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

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

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

1537 1538
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1539
**参数:**
H
haonan_7 已提交
1540

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

Z
zhangxingxia 已提交
1546
**示例:**
H
haonan_7 已提交
1547

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


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

lstatSync(path:string): Stat

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

1561 1562
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1563
**参数:**
H
haonan_7 已提交
1564

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

Z
zhangxingxia 已提交
1569
**返回值:**
H
haonan_7 已提交
1570 1571 1572 1573

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

Z
zhangxingxia 已提交
1575
**示例:**
H
haonan_7 已提交
1576

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


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

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

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

1588 1589
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1590
**参数:**
H
haonan_7 已提交
1591

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

Z
zhangxingxia 已提交
1597
**返回值:**
H
haonan_7 已提交
1598 1599 1600 1601

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

Z
zhangxingxia 已提交
1603
**示例:**
H
haonan_7 已提交
1604

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


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

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

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

1622 1623
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1624
**参数:**
H
haonan_7 已提交
1625

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

Z
zhangxingxia 已提交
1632
**示例:**
H
haonan_7 已提交
1633

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


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

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

以同步方法重命名文件。

1648 1649
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1650
**参数:**
H
haonan_7 已提交
1651

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

Z
zhangxingxia 已提交
1657
**示例:**
H
haonan_7 已提交
1658

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


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

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

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

1672 1673
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1674
**参数:**
H
haonan_7 已提交
1675 1676 1677 1678

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

Z
zhangxingxia 已提交
1680
**返回值:**
H
haonan_7 已提交
1681 1682 1683 1684

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

Z
zhangxingxia 已提交
1686
**示例:**
H
haonan_7 已提交
1687

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


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

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

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

1704 1705
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1706
**参数:**
H
haonan_7 已提交
1707 1708 1709 1710 1711

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

Z
zhangxingxia 已提交
1713
**示例:**
H
haonan_7 已提交
1714

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


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

fsyncSync(fd: number): void

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

1729 1730
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1731
**参数:**
H
haonan_7 已提交
1732 1733 1734 1735

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

Z
zhangxingxia 已提交
1737
**示例:**
H
haonan_7 已提交
1738

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


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

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

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

1751 1752
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1753
**参数:**
H
haonan_7 已提交
1754 1755 1756 1757

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

Z
zhangxingxia 已提交
1759
**返回值:**
H
haonan_7 已提交
1760 1761 1762 1763

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

Z
zhangxingxia 已提交
1765
**示例:**
H
haonan_7 已提交
1766

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


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

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

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

1783 1784
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1785
**参数:**
H
haonan_7 已提交
1786 1787 1788 1789 1790

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

Z
zhangxingxia 已提交
1792
**示例:**
H
haonan_7 已提交
1793

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


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

fdatasyncSync(fd: number): void

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

1808 1809
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
1816
**示例:**
H
haonan_7 已提交
1817

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


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

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

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

1830 1831
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1832
**参数:**
H
haonan_7 已提交
1833

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

Z
zhangxingxia 已提交
1839
**返回值:**
H
haonan_7 已提交
1840 1841 1842 1843

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

Z
zhangxingxia 已提交
1845
**示例:**
H
haonan_7 已提交
1846

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


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

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

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

1864 1865
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1866
**参数:**
H
haonan_7 已提交
1867

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

Z
zhangxingxia 已提交
1874
**示例:**
H
haonan_7 已提交
1875

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


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

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

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

1891 1892
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1893
**参数:**
H
haonan_7 已提交
1894

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

Z
zhangxingxia 已提交
1900
**示例:**
H
haonan_7 已提交
1901

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


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

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

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

1915 1916
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1917
**参数:**
H
haonan_7 已提交
1918

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

Z
zhangxingxia 已提交
1925
**返回值:**
H
haonan_7 已提交
1926 1927 1928 1929

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

Z
zhangxingxia 已提交
1931
**示例:**
H
haonan_7 已提交
1932

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


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

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

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

1949 1950
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1951
**参数:**
H
haonan_7 已提交
1952

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

Z
zhangxingxia 已提交
1960
**示例:**
H
haonan_7 已提交
1961

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


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

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

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

1976 1977
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1978
**参数:**
H
haonan_7 已提交
1979

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

Z
zhangxingxia 已提交
1986
**示例:**
H
haonan_7 已提交
1987

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


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

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

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

2000 2001
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2002
**参数:**
H
haonan_7 已提交
2003 2004 2005 2006

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

Z
zhangxingxia 已提交
2008
**返回值:**
H
haonan_7 已提交
2009 2010 2011 2012

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

Z
zhangxingxia 已提交
2014
**示例:**
H
haonan_7 已提交
2015

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


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

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

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

2031 2032
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2033
**参数:**
H
haonan_7 已提交
2034 2035 2036 2037 2038

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

Z
zhangxingxia 已提交
2040
**示例:**
H
haonan_7 已提交
2041

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


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

mkdtempSync(prefix: string): string

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

2055 2056
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2057
**参数:**
H
haonan_7 已提交
2058 2059 2060 2061

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

Z
zhangxingxia 已提交
2063
**返回值:**
H
haonan_7 已提交
2064 2065 2066 2067

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

Z
zhangxingxia 已提交
2069
**示例:**
H
haonan_7 已提交
2070

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


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

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

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

2082 2083
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2084
**参数:**
H
haonan_7 已提交
2085 2086 2087 2088 2089

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

Z
zhangxingxia 已提交
2091
**返回值:**
H
haonan_7 已提交
2092 2093 2094 2095

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

Z
zhangxingxia 已提交
2097
**示例:**
H
haonan_7 已提交
2098

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


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

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

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

2116 2117
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
2126
**示例:**
H
haonan_7 已提交
2127

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


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

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

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

2143 2144
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2145
**参数:**
H
haonan_7 已提交
2146 2147 2148 2149 2150

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

Z
zhangxingxia 已提交
2152
**示例:**
H
haonan_7 已提交
2153

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


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

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

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

2167 2168
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2169
**参数:**
H
haonan_7 已提交
2170

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

Z
zhangxingxia 已提交
2176
**返回值:**
H
haonan_7 已提交
2177 2178 2179 2180

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

Z
zhangxingxia 已提交
2182
**示例:**
H
haonan_7 已提交
2183

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


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

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

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

2199 2200
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2201
**参数:**
H
haonan_7 已提交
2202

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

Z
zhangxingxia 已提交
2209
**示例:**
H
haonan_7 已提交
2210

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


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

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

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

2224 2225
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2226
**参数:**
H
haonan_7 已提交
2227

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

Z
zhangxingxia 已提交
2233
**返回值:**
H
haonan_7 已提交
2234 2235 2236 2237

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

Z
zhangxingxia 已提交
2239
**示例:**
H
haonan_7 已提交
2240

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


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

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

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

2252 2253
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2254
**参数:**
H
haonan_7 已提交
2255 2256 2257 2258 2259

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

Z
zhangxingxia 已提交
2261
**返回值:**
H
haonan_7 已提交
2262 2263 2264 2265

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

Z
zhangxingxia 已提交
2267
**示例:**
H
haonan_7 已提交
2268

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


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

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

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

2285 2286
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
2295
**示例:**
H
haonan_7 已提交
2296

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


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

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

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

2311 2312
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2313
**参数:**
H
haonan_7 已提交
2314 2315 2316 2317 2318

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

Z
zhangxingxia 已提交
2320
**返回值:**
H
haonan_7 已提交
2321 2322 2323 2324

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

Z
zhangxingxia 已提交
2326
**示例:**
H
haonan_7 已提交
2327

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

2340 2341
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
2350
**返回值:**
H
haonan_7 已提交
2351 2352 2353 2354

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

Z
zhangxingxia 已提交
2356
**示例:**
H
haonan_7 已提交
2357

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


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

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

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

2375 2376
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
2386
**示例:**
H
haonan_7 已提交
2387

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


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

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

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

2403 2404
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

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

Z
zhangxingxia 已提交
2413
**示例:**
H
haonan_7 已提交
2414

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

2428 2429
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2430
**参数:**
H
haonan_7 已提交
2431

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

Z
zhangxingxia 已提交
2438
**返回值:**
H
haonan_7 已提交
2439 2440 2441 2442

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

Z
zhangxingxia 已提交
2444
**示例:**
H
haonan_7 已提交
2445

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


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

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

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

2462 2463
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2464
**参数:**
H
haonan_7 已提交
2465

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

Z
zhangxingxia 已提交
2473
**示例:**
H
haonan_7 已提交
2474

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


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

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

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

2489 2490
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2491
**参数:**
H
haonan_7 已提交
2492

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

Z
zhangxingxia 已提交
2499
**示例:**
H
haonan_7 已提交
2500

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

2513 2514
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2515
**参数:**
H
haonan_7 已提交
2516

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

Z
zhangxingxia 已提交
2523
**返回值:**
H
haonan_7 已提交
2524 2525 2526 2527

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

Z
zhangxingxia 已提交
2529
**示例:**
H
haonan_7 已提交
2530

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


## Readout

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

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

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


## Stat

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

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

Z
zengyawen 已提交
2559
### 属性
Z
zengyawen 已提交
2560

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


Z
zengyawen 已提交
2577
### isBlockDevice
Z
zengyawen 已提交
2578

Z
zengyawen 已提交
2579
isBlockDevice(): boolean
Z
zengyawen 已提交
2580

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

2583 2584
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2585
**返回值:**
H
haonan_7 已提交
2586 2587 2588 2589

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

Z
zhangxingxia 已提交
2591
**示例:**
H
haonan_7 已提交
2592

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


Z
zengyawen 已提交
2598
### isCharacterDevice
Z
zengyawen 已提交
2599

Z
zengyawen 已提交
2600
isCharacterDevice(): boolean
Z
zengyawen 已提交
2601

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

2604 2605
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2606
**返回值:**
H
haonan_7 已提交
2607 2608 2609 2610

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

Z
zhangxingxia 已提交
2612
**示例:**
H
haonan_7 已提交
2613

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


Z
zengyawen 已提交
2619
### isDirectory
Z
zengyawen 已提交
2620

Z
zengyawen 已提交
2621
isDirectory(): boolean
Z
zengyawen 已提交
2622

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

2625 2626
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2627
**返回值:**
H
haonan_7 已提交
2628 2629 2630 2631

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

Z
zhangxingxia 已提交
2633
**示例:**
H
haonan_7 已提交
2634

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


Z
zengyawen 已提交
2640
### isFIFO
Z
zengyawen 已提交
2641

Z
zengyawen 已提交
2642
isFIFO(): boolean
Z
zengyawen 已提交
2643

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

2646 2647
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2648
**返回值:**
H
haonan_7 已提交
2649 2650 2651 2652

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

Z
zhangxingxia 已提交
2654
**示例:**
H
haonan_7 已提交
2655

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


Z
zengyawen 已提交
2661
### isFile
Z
zengyawen 已提交
2662

Z
zengyawen 已提交
2663
isFile(): boolean
Z
zengyawen 已提交
2664

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

2667 2668
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2669
**返回值:**
H
haonan_7 已提交
2670 2671 2672 2673

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

Z
zhangxingxia 已提交
2675
**示例:**
H
haonan_7 已提交
2676

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


Z
zengyawen 已提交
2682
### isSocket
Z
zengyawen 已提交
2683

Z
zengyawen 已提交
2684
isSocket(): boolean
Z
zengyawen 已提交
2685

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

2688 2689
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2690
**返回值:**
H
haonan_7 已提交
2691 2692 2693 2694

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

Z
zhangxingxia 已提交
2696
**示例:**
H
haonan_7 已提交
2697

Z
zhangxingxia 已提交
2698
  ```js
Z
zengyawen 已提交
2699 2700
  let isSocket = fileio.statSync(path).isSocket(); 
  ```
Z
zengyawen 已提交
2701 2702


Z
zengyawen 已提交
2703
### isSymbolicLink
Z
zengyawen 已提交
2704

Z
zengyawen 已提交
2705
isSymbolicLink(): boolean
Z
zengyawen 已提交
2706

Z
zhangxingxia 已提交
2707
用于判断文件是否是符号链接。
Z
zengyawen 已提交
2708

2709 2710
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2711
**返回值:**
H
haonan_7 已提交
2712 2713 2714 2715

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示文件是否是符号链接。 |
Z
zengyawen 已提交
2716

Z
zhangxingxia 已提交
2717
**示例:**
H
haonan_7 已提交
2718

Z
zhangxingxia 已提交
2719
  ```js
Z
zengyawen 已提交
2720 2721
  let isSymbolicLink = fileio.statSync(path).isSymbolicLink(); 
  ```
Z
zengyawen 已提交
2722 2723


Z
zengyawen 已提交
2724 2725 2726 2727 2728 2729 2730
## Watcher<sup>7+</sup>

Watcher是文件变化监听的实例,调用Watcher.stop()方法(同步或异步)来停止文件监听。


### stop<sup>7+</sup>

2731
stop(): Promise&lt;void&gt;
Z
zengyawen 已提交
2732

H
haonan_7 已提交
2733
关闭watcher监听,使用Promise异步回调。
Z
zengyawen 已提交
2734

2735 2736
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2737
**示例:**
H
haonan_7 已提交
2738

Z
zhangxingxia 已提交
2739
  ```js
Z
zhangxingxia 已提交
2740
  let filename = path +"/test.txt";
R
raoxian 已提交
2741
  let watcher = fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2742
      console.info("Monitoring times: "+number);
Z
zhangxingxia 已提交
2743 2744
  });
  watcher.stop().then(function(){
Z
zhangxingxia 已提交
2745
       console.info("close watcher succeed");
Z
zhangxingxia 已提交
2746
  });
Z
zengyawen 已提交
2747 2748 2749 2750 2751
  ```


### stop<sup>7+</sup>

2752
stop(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
2753

H
haonan_7 已提交
2754
关闭watcher监听,使用callback异步回调。
Z
zengyawen 已提交
2755

2756 2757
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2758
**参数:**
H
haonan_7 已提交
2759 2760 2761 2762

  | 参数名      | 类型                        | 必填   | 说明                     |
  | -------- | ------------------------- | ---- | ---------------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 以异步方法关闭watcher监听之后的回调。 |
Z
zengyawen 已提交
2763

Z
zhangxingxia 已提交
2764
**示例:**
H
haonan_7 已提交
2765

Z
zhangxingxia 已提交
2766
  ```js
Z
zhangxingxia 已提交
2767
  let filename = path +"/test.txt";
R
raoxian 已提交
2768
  let watcher = fileio.createWatcher(filename, 1, function(number){
Z
zhangxingxia 已提交
2769
      console.info("Monitoring times: "+number);
Z
zengyawen 已提交
2770
  });
Z
zhangxingxia 已提交
2771 2772 2773
  watcher.stop(function(){
      console.info("close watcher succeed");
  })
Z
zengyawen 已提交
2774 2775 2776
  ```


Z
zhangxingxia 已提交
2777
## Stream
Z
zengyawen 已提交
2778

Z
zengyawen 已提交
2779 2780 2781 2782 2783 2784 2785
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。


### close<sup>7+</sup>

close(): Promise&lt;void&gt;

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

2788 2789
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2790
**返回值:**
H
haonan_7 已提交
2791 2792 2793 2794

  | 类型                  | 说明            |
  | ------------------- | ------------- |
  | Promise&lt;void&gt; | Promise对象。返回表示异步关闭文件流的结果。 |
Z
zengyawen 已提交
2795

Z
zhangxingxia 已提交
2796
**示例:**
H
haonan_7 已提交
2797

Z
zhangxingxia 已提交
2798
  ```js
Z
zhangxingxia 已提交
2799
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2800
  ss.close().then(function(){
H
haonan_7 已提交
2801
      console.info("close fileStream succeed");
Z
zhangxingxia 已提交
2802 2803 2804
  }).catch(function(err){
      console.info("close fileStream  failed with error:"+ err);
  });
Z
zengyawen 已提交
2805 2806 2807 2808 2809 2810 2811
  ```


### close<sup>7+</sup>

close(callback: AsyncCallback&lt;void&gt;): void

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

2814 2815
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2816
**参数:**
H
haonan_7 已提交
2817 2818 2819 2820

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

Z
zhangxingxia 已提交
2822
**示例:**
H
haonan_7 已提交
2823

Z
zhangxingxia 已提交
2824
  ```js
Z
zhangxingxia 已提交
2825
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2826
  ss.close(function (err) {
Z
zhangxingxia 已提交
2827
      // do something
Z
zengyawen 已提交
2828 2829
  });
  ```
Z
zengyawen 已提交
2830 2831


2832
### closeSync
Z
zengyawen 已提交
2833

Z
zengyawen 已提交
2834
closeSync(): void
Z
zengyawen 已提交
2835

Z
zengyawen 已提交
2836
同步关闭文件流。
Z
zengyawen 已提交
2837

2838 2839
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2840
**示例:**
H
haonan_7 已提交
2841

Z
zhangxingxia 已提交
2842
  ```js
Z
zhangxingxia 已提交
2843
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2844 2845
  ss.closeSync();
  ```
Z
zengyawen 已提交
2846 2847


Z
zengyawen 已提交
2848 2849 2850 2851
### flush<sup>7+</sup>

flush(): Promise&lt;void&gt;

H
haonan_7 已提交
2852
刷新文件流,使用Promise异步回调。
Z
zengyawen 已提交
2853

2854 2855
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2856
**返回值:**
H
haonan_7 已提交
2857 2858 2859 2860

  | 类型                  | 说明            |
  | ------------------- | ------------- |
  | Promise&lt;void&gt; | Promise对象。返回表示异步刷新文件流的结果。 |
Z
zengyawen 已提交
2861

Z
zhangxingxia 已提交
2862
**示例:**
H
haonan_7 已提交
2863

Z
zhangxingxia 已提交
2864
  ```js
Z
zhangxingxia 已提交
2865
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2866
  ss.flush().then(function (){
H
haonan_7 已提交
2867
      console.info("flush succeed");
Z
zhangxingxia 已提交
2868 2869 2870
  }).catch(function(err){
      console.info("flush failed with error:"+ err);
  });
Z
zengyawen 已提交
2871 2872 2873 2874 2875 2876 2877
  ```


### flush<sup>7+</sup>

flush(callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2878
异步刷新文件流,使用callback异步回调。
Z
zengyawen 已提交
2879

2880 2881
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2882
**参数:**
H
haonan_7 已提交
2883 2884 2885 2886

  | 参数名      | 类型                        | 必填   | 说明             |
  | -------- | ------------------------- | ---- | -------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步刷新文件流后的回调函数。 |
Z
zengyawen 已提交
2887

Z
zhangxingxia 已提交
2888
**示例:**
H
haonan_7 已提交
2889

Z
zhangxingxia 已提交
2890
  ```js
Z
zhangxingxia 已提交
2891
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2892
  ss.flush(function (err) {
Z
zhangxingxia 已提交
2893
      // do something
Z
zengyawen 已提交
2894 2895 2896 2897
  });
  ```


Z
zengyawen 已提交
2898
### flushSync<sup>7+</sup>
Z
zengyawen 已提交
2899

Z
zengyawen 已提交
2900
flushSync(): void
Z
zengyawen 已提交
2901

Z
zengyawen 已提交
2902
同步刷新文件流。
Z
zengyawen 已提交
2903

2904 2905
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2906
**示例:**
H
haonan_7 已提交
2907

Z
zhangxingxia 已提交
2908
  ```js
Z
zhangxingxia 已提交
2909
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2910 2911
  ss.flushSync();
  ```
Z
zengyawen 已提交
2912 2913


Z
zengyawen 已提交
2914 2915
### write<sup>7+</sup>

2916 2917 2918 2919 2920 2921
write(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
2922

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

2925 2926
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2927
**参数:**
H
haonan_7 已提交
2928 2929 2930 2931 2932

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

Z
zhangxingxia 已提交
2934
**返回值:**
H
haonan_7 已提交
2935 2936 2937 2938

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

Z
zhangxingxia 已提交
2940
**示例:**
H
haonan_7 已提交
2941

Z
zhangxingxia 已提交
2942
  ```js
Z
zhangxingxia 已提交
2943
  let ss= fileio.createStreamSync(path, "r+");
Z
zhangxingxia 已提交
2944
  ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
H
haonan_7 已提交
2945
      console.info("write succeed and size is:"+ number);
Z
zhangxingxia 已提交
2946 2947 2948
  }).catch(function(err){
      console.info("write failed with error:"+ err);
  });
Z
zengyawen 已提交
2949 2950 2951 2952 2953
  ```


### write<sup>7+</sup>

2954 2955 2956 2957 2958 2959
write(buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
2960

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

2963 2964
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2965
**参数:**
H
haonan_7 已提交
2966 2967 2968 2969 2970 2971

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

Z
zhangxingxia 已提交
2973
**示例:**
H
haonan_7 已提交
2974

Z
zhangxingxia 已提交
2975
  ```js
Z
zhangxingxia 已提交
2976
  let ss= fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
2977
  ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
Z
zhangxingxia 已提交
2978
      if (bytesWritten) {
Z
zhangxingxia 已提交
2979
         // do something
H
haonan_7 已提交
2980
         console.info("write succeed and size is:"+ bytesWritten);
Z
zengyawen 已提交
2981 2982 2983 2984 2985
      }
  });
  ```


Z
zengyawen 已提交
2986
### writeSync<sup>7+</sup>
Z
zengyawen 已提交
2987

2988 2989 2990 2991 2992 2993
writeSync(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
2994

Z
zengyawen 已提交
2995
以同步方法将数据写入流文件。
Z
zengyawen 已提交
2996

2997 2998
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2999
**参数:**
H
haonan_7 已提交
3000 3001 3002 3003 3004

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

Z
zhangxingxia 已提交
3006
**返回值:**
H
haonan_7 已提交
3007 3008 3009 3010

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

Z
zhangxingxia 已提交
3012
**示例:**
H
haonan_7 已提交
3013

Z
zhangxingxia 已提交
3014
  ```js
Z
zhangxingxia 已提交
3015
  let ss= fileio.createStreamSync(path,"r+");
Z
zengyawen 已提交
3016 3017 3018 3019 3020 3021
  let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});
  ```


### read<sup>7+</sup>

3022 3023 3024 3025 3026
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
3027

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

3030 3031
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3032
**参数:**
H
haonan_7 已提交
3033 3034 3035 3036 3037

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

Z
zhangxingxia 已提交
3039
**返回值:**
H
haonan_7 已提交
3040 3041 3042 3043

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

Z
zhangxingxia 已提交
3045
**示例:**
H
haonan_7 已提交
3046

Z
zhangxingxia 已提交
3047
  ```js
Z
zhangxingxia 已提交
3048
  let ss = fileio.createStreamSync(path, "r+");
3049
  ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readOut){
H
haonan_7 已提交
3050
      console.info("read data succeed");
W
wangbo 已提交
3051
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
3052 3053 3054
  }).catch(function(err){
      console.info("read data failed with error:"+ err);
  });
Z
zengyawen 已提交
3055 3056 3057 3058 3059
  ```


### read<sup>7+</sup>

3060 3061 3062 3063 3064
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
3065

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

3068 3069
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3070
**参数:**
H
haonan_7 已提交
3071 3072 3073 3074 3075 3076

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

Z
zhangxingxia 已提交
3078
**示例:**
H
haonan_7 已提交
3079

Z
zhangxingxia 已提交
3080
  ```js
Z
zhangxingxia 已提交
3081
  let ss = fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
3082
  ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
Z
zhangxingxia 已提交
3083
      if (readOut) {
H
haonan_7 已提交
3084
          console.info("read data succeed");
Z
zhangxingxia 已提交
3085
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
3086 3087
      }
  });
Z
zengyawen 已提交
3088
  ```
Z
zengyawen 已提交
3089 3090


Z
zengyawen 已提交
3091
### readSync<sup>7+</sup>
Z
zengyawen 已提交
3092

3093 3094 3095 3096 3097
readSync(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): number
Z
zengyawen 已提交
3098 3099 3100

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

3101 3102
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3103
**参数:**
Z
zhangxingxia 已提交
3104

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

Z
zhangxingxia 已提交
3110
**返回值:**
Z
zhangxingxia 已提交
3111

H
haonan_7 已提交
3112 3113 3114
  | 类型     | 说明       |
  | ------ | -------- |
  | number | 实际读取的长度。 |
Z
zhangxingxia 已提交
3115

Z
zhangxingxia 已提交
3116
**示例:**
H
haonan_7 已提交
3117

Z
zhangxingxia 已提交
3118
  ```js
Z
zhangxingxia 已提交
3119
  let ss = fileio.createStreamSync(path, "r+");
Z
zengyawen 已提交
3120
  let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});
Z
zengyawen 已提交
3121
  ```
Z
zengyawen 已提交
3122 3123


Z
zengyawen 已提交
3124
## Dir
Z
zengyawen 已提交
3125

3126
管理目录,在调用Dir的方法前,需要先通过opendir方法(同步或异步)来构建一个Dir实例。
Z
zengyawen 已提交
3127 3128 3129 3130 3131 3132


### read

read(): Promise&lt;Dirent&gt;

H
haonan_7 已提交
3133
读取下一个目录项,使用Promise异步回调。
Z
zengyawen 已提交
3134

3135 3136
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3137
**返回值:**
H
haonan_7 已提交
3138 3139 3140 3141

  | 类型                               | 说明            |
  | -------------------------------- | ------------- |
  | Promise&lt;[Dirent](#dirent)&gt; | Promise对象。返回表示异步读取目录项的结果。 |
Z
zengyawen 已提交
3142

Z
zhangxingxia 已提交
3143
**示例:**
H
haonan_7 已提交
3144

Z
zhangxingxia 已提交
3145 3146
  ```js
  dir.read().then(function (dirent){
H
haonan_7 已提交
3147
      console.log("read succeed:"+JSON.stringify(dirent));
Z
zhangxingxia 已提交
3148 3149 3150
  }).catch(function(err){
      console.info("read failed with error:"+ err);
  });
Z
zengyawen 已提交
3151 3152 3153 3154 3155 3156 3157
  ```


### read

read(callback: AsyncCallback&lt;Dirent&gt;): void

H
haonan_7 已提交
3158
读取下一个目录项,使用callback异步回调。
Z
zengyawen 已提交
3159

3160 3161
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3162
**参数:**
H
haonan_7 已提交
3163 3164 3165 3166

  | 参数名      | 类型                                     | 必填   | 说明               |
  | -------- | -------------------------------------- | ---- | ---------------- |
  | callback | AsyncCallback&lt;[Dirent](#dirent)&gt; | 是    | 异步读取下一个目录项之后的回调。 |
Z
zengyawen 已提交
3167

Z
zhangxingxia 已提交
3168
**示例:**
H
haonan_7 已提交
3169

Z
zhangxingxia 已提交
3170
  ```js
Z
zengyawen 已提交
3171
  dir.read(function (err, dirent) {
Z
zhangxingxia 已提交
3172
      if (dirent) {
Z
zhangxingxia 已提交
3173
          // do something
H
haonan_7 已提交
3174
          console.log("read succeed:"+JSON.stringify(dirent));
Z
zengyawen 已提交
3175 3176 3177
      }
  });
  ```
Z
zengyawen 已提交
3178 3179


Z
zengyawen 已提交
3180
### readSync
Z
zengyawen 已提交
3181

Z
zengyawen 已提交
3182
readSync(): Dirent
Z
zengyawen 已提交
3183

Z
zengyawen 已提交
3184
同步读取下一个目录项。
Z
zengyawen 已提交
3185

3186 3187
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3188
**返回值:**
H
haonan_7 已提交
3189 3190 3191 3192

  | 类型                | 说明       |
  | ----------------- | -------- |
  | [Dirent](#dirent) | 表示一个目录项。 |
Z
zengyawen 已提交
3193

Z
zhangxingxia 已提交
3194
**示例:**
H
haonan_7 已提交
3195

Z
zhangxingxia 已提交
3196
  ```js
Z
zengyawen 已提交
3197 3198
  let dirent = dir.readSync();
  ```
Z
zengyawen 已提交
3199 3200


W
wangbo 已提交
3201 3202 3203 3204 3205 3206 3207 3208 3209
### close<sup>7+</sup>

close(): Promise&lt;void&gt;

异步关闭目录,使用promise形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。

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

**示例:**
H
haonan_7 已提交
3210

W
wangbo 已提交
3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226
  ```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 已提交
3227

W
wangbo 已提交
3228 3229 3230 3231 3232 3233 3234
  ```js
  dir.close(function(err){
      console.info("close dir successfully");
  });
  ```


Z
zengyawen 已提交
3235
### closeSync
Z
zengyawen 已提交
3236

Z
zengyawen 已提交
3237
closeSync(): void
Z
zengyawen 已提交
3238

Z
zengyawen 已提交
3239
用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
Z
zengyawen 已提交
3240

3241 3242
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3243
**示例:**
H
haonan_7 已提交
3244

Z
zhangxingxia 已提交
3245
  ```js
Z
zengyawen 已提交
3246 3247
  dir.closeSync();
  ```
Z
zengyawen 已提交
3248 3249


Z
zengyawen 已提交
3250
## Dirent
Z
zengyawen 已提交
3251

Z
zengyawen 已提交
3252
在调用Dirent的方法前,需要先通过[dir.read()](#read)方法(同步或异步)来构建一个Dirent实例。
Z
zengyawen 已提交
3253

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

Z
zengyawen 已提交
3256
### 属性
Z
zengyawen 已提交
3257

H
HelloCrease 已提交
3258 3259 3260
| 名称   | 参数类型   | 可读   | 可写   | 说明      |
| ---- | ------ | ---- | ---- | ------- |
| name | string | 是    | 否    | 目录项的名称。 |
Z
zengyawen 已提交
3261 3262


Z
zengyawen 已提交
3263
### isBlockDevice
Z
zengyawen 已提交
3264

Z
zengyawen 已提交
3265
isBlockDevice(): boolean
Z
zengyawen 已提交
3266

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

3269 3270
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3271
**返回值:**
H
haonan_7 已提交
3272 3273 3274 3275

  | 类型      | 说明               |
  | ------- | ---------------- |
  | boolean | 表示当前目录项是否是块特殊设备。 |
Z
zengyawen 已提交
3276

Z
zhangxingxia 已提交
3277
**示例:**
H
haonan_7 已提交
3278

Z
zhangxingxia 已提交
3279
  ```js
W
wangbo 已提交
3280
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3281 3282
  let isBLockDevice = dir.readSync().isBlockDevice();
  ```
Z
zengyawen 已提交
3283 3284


Z
zengyawen 已提交
3285
### isCharacterDevice
Z
zengyawen 已提交
3286

Z
zengyawen 已提交
3287
isCharacterDevice(): boolean
Z
zengyawen 已提交
3288

Z
zhangxingxia 已提交
3289
用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
Z
zengyawen 已提交
3290

3291 3292
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3293
**返回值:**
H
haonan_7 已提交
3294 3295 3296 3297

  | 类型      | 说明                |
  | ------- | ----------------- |
  | boolean | 表示当前目录项是否是字符特殊设备。 |
Z
zengyawen 已提交
3298

Z
zhangxingxia 已提交
3299
**示例:**
H
haonan_7 已提交
3300

Z
zhangxingxia 已提交
3301
  ```js
W
wangbo 已提交
3302
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3303 3304
  let isCharacterDevice = dir.readSync().isCharacterDevice(); 
  ```
Z
zengyawen 已提交
3305 3306


Z
zengyawen 已提交
3307
### isDirectory
Z
zengyawen 已提交
3308

Z
zengyawen 已提交
3309
isDirectory(): boolean
Z
zengyawen 已提交
3310

Z
zhangxingxia 已提交
3311
用于判断当前目录项是否是目录。
Z
zengyawen 已提交
3312

3313 3314
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3315
**返回值:**
H
haonan_7 已提交
3316 3317 3318 3319

  | 类型      | 说明            |
  | ------- | ------------- |
  | boolean | 表示当前目录项是否是目录。 |
Z
zengyawen 已提交
3320

Z
zhangxingxia 已提交
3321
**示例:**
H
haonan_7 已提交
3322

Z
zhangxingxia 已提交
3323
  ```js
W
wangbo 已提交
3324
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3325 3326
  let isDirectory = dir.readSync().isDirectory(); 
  ```
Z
zengyawen 已提交
3327 3328


Z
zengyawen 已提交
3329
### isFIFO
Z
zengyawen 已提交
3330

Z
zengyawen 已提交
3331
isFIFO(): boolean
Z
zengyawen 已提交
3332

Z
zhangxingxia 已提交
3333
用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
3334

3335 3336
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3337
**返回值:**
H
haonan_7 已提交
3338 3339 3340 3341

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是FIFO。 |
Z
zengyawen 已提交
3342

Z
zhangxingxia 已提交
3343
**示例:**
H
haonan_7 已提交
3344

Z
zhangxingxia 已提交
3345
  ```js
W
wangbo 已提交
3346
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3347 3348
  let isFIFO = dir.readSync().isFIFO(); 
  ```
Z
zengyawen 已提交
3349 3350


Z
zengyawen 已提交
3351
### isFile
Z
zengyawen 已提交
3352

Z
zengyawen 已提交
3353
isFile(): boolean
Z
zengyawen 已提交
3354

Z
zhangxingxia 已提交
3355
用于判断当前目录项是否是普通文件。
Z
zengyawen 已提交
3356

3357 3358
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3359
**返回值:**
H
haonan_7 已提交
3360 3361 3362 3363

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是普通文件。 |
Z
zengyawen 已提交
3364

Z
zhangxingxia 已提交
3365
**示例:**
H
haonan_7 已提交
3366

Z
zhangxingxia 已提交
3367
  ```js
W
wangbo 已提交
3368
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3369 3370
  let isFile = dir.readSync().isFile(); 
  ```
Z
zengyawen 已提交
3371 3372


Z
zengyawen 已提交
3373
### isSocket
Z
zengyawen 已提交
3374

Z
zengyawen 已提交
3375
isSocket(): boolean
Z
zengyawen 已提交
3376

Z
zhangxingxia 已提交
3377
用于判断当前目录项是否是套接字。
Z
zengyawen 已提交
3378

3379 3380
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3381
**返回值:**
H
haonan_7 已提交
3382 3383 3384 3385

  | 类型      | 说明             |
  | ------- | -------------- |
  | boolean | 表示当前目录项是否是套接字。 |
Z
zengyawen 已提交
3386

Z
zhangxingxia 已提交
3387
**示例:**
H
haonan_7 已提交
3388

Z
zhangxingxia 已提交
3389
  ```js
3390
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3391 3392
  let isSocket = dir.readSync().isSocket(); 
  ```
Z
zengyawen 已提交
3393 3394


Z
zengyawen 已提交
3395
### isSymbolicLink
Z
zengyawen 已提交
3396

Z
zengyawen 已提交
3397
isSymbolicLink(): boolean
Z
zengyawen 已提交
3398

Z
zhangxingxia 已提交
3399
用于判断当前目录项是否是符号链接。
Z
zengyawen 已提交
3400

3401 3402
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3403
**返回值:**
H
haonan_7 已提交
3404 3405 3406 3407

  | 类型      | 说明              |
  | ------- | --------------- |
  | boolean | 表示当前目录项是否是符号链接。 |
Z
zengyawen 已提交
3408

Z
zhangxingxia 已提交
3409
**示例:**
H
haonan_7 已提交
3410

Z
zhangxingxia 已提交
3411
  ```js
W
wangbo 已提交
3412
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3413 3414
  let isSymbolicLink = dir.readSync().isSymbolicLink();
  ```