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

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

W
wangbo 已提交
6
该模块提供文件存储管理能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。
Z
zhangxingxia 已提交
7

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

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

Z
zengyawen 已提交
14 15

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

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


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

stat(path: string): Promise<Stat>

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

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

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

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

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

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

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


## fileio.stat

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

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

64 65
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
72
**示例:**
Z
zhangxingxia 已提交
73
  ```js
Z
zengyawen 已提交
74
  fileio.stat(path, function (err, stat) {
Z
zhangxingxia 已提交
75
      // example code in Stat
Z
zengyawen 已提交
76 77 78 79
  });
  ```


Z
zengyawen 已提交
80 81 82
## fileio.statSync

statSync(path:string): Stat
Z
zengyawen 已提交
83 84 85

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

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

Z
zhangxingxia 已提交
88
**参数:**
Z
zengyawen 已提交
89 90 91
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待获取文件的应用沙箱路径。 |
Z
zengyawen 已提交
92 93


Z
zhangxingxia 已提交
94
**返回值:**
H
HelloCrease 已提交
95 96
  | 类型            | 说明         |
  | ------------- | ---------- |
Z
zengyawen 已提交
97 98
  | [Stat](#stat) | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
99
**示例:**
Z
zhangxingxia 已提交
100
  ```js
Z
zengyawen 已提交
101
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
102
  // example code in Stat
Z
zengyawen 已提交
103 104 105
  ```


Z
zengyawen 已提交
106
## fileio.opendir
Z
zengyawen 已提交
107

Z
zengyawen 已提交
108
opendir(path: string): Promise<Dir>
Z
zengyawen 已提交
109

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

112 113
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
114
**参数:**
Z
zengyawen 已提交
115 116 117
| 参数名 | 类型   | 必填 | 说明                           |
| ------ | ------ | ---- | ------------------------------ |
| path   | string | 是   | 待打开文件目录的应用沙箱路径。 |
Z
zengyawen 已提交
118

Z
zhangxingxia 已提交
119
**返回值:**
H
HelloCrease 已提交
120 121
  | 类型                         | 说明       |
  | -------------------------- | -------- |
H
haonan_7 已提交
122
  | Promise<[Dir](#dir)> | Promise对象。返回Dir对象。 |
Z
zengyawen 已提交
123

Z
zhangxingxia 已提交
124
**示例:**
Z
zhangxingxia 已提交
125 126
  ```js
  fileio.opendir(path).then(function(dir){
H
haonan_7 已提交
127
      console.info("opendir succeed:"+ JSON.stringify(dir));
Z
zhangxingxia 已提交
128 129 130
  }).catch(function(err){
      console.info("opendir failed with error:"+ err);
  });
Z
zengyawen 已提交
131 132 133
  ```


Z
zengyawen 已提交
134
## fileio.opendir
Z
zengyawen 已提交
135

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

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

140 141
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
142
**参数:**
Z
zhangxingxia 已提交
143

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

Z
zhangxingxia 已提交
149
**示例:**
Z
zhangxingxia 已提交
150
  ```js
Z
zengyawen 已提交
151
  fileio.opendir(path, function (err, dir) { 
Z
zhangxingxia 已提交
152 153
      // example code in Dir struct
      // use read/readSync/close
Z
zengyawen 已提交
154
  });
Z
zengyawen 已提交
155 156 157
  ```


Z
zengyawen 已提交
158
## fileio.opendirSync
Z
zengyawen 已提交
159

Z
zengyawen 已提交
160 161 162
opendirSync(path: string): Dir

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

164 165
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zengyawen 已提交
166

Z
zhangxingxia 已提交
167
**参数:**
Z
zhangxingxia 已提交
168

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

Z
zhangxingxia 已提交
173
**返回值:**
H
HelloCrease 已提交
174 175
  | 类型          | 说明       |
  | ----------- | -------- |
Z
zengyawen 已提交
176
  | [Dir](#dir) | 返回Dir对象。 |
Z
zengyawen 已提交
177

Z
zhangxingxia 已提交
178
**示例:**
Z
zhangxingxia 已提交
179
  ```js
Z
zengyawen 已提交
180 181 182
  let dir = fileio.opendirSync(path);
  // example code in Dir struct
  // use read/readSync/close
Z
zengyawen 已提交
183 184 185
  ```


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

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

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

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

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

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

Z
zhangxingxia 已提交
201
**返回值:**
H
HelloCrease 已提交
202 203
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
204
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
205

Z
zhangxingxia 已提交
206
**示例:**
Z
zhangxingxia 已提交
207 208
  ```js
  fileio.access(path).then(function() {
H
haonan_7 已提交
209
      console.info("access succeed");
Z
zhangxingxia 已提交
210 211
  }).catch(function(err){
      console.info("access failed with error:"+ err);
Z
zengyawen 已提交
212
  });
Z
zengyawen 已提交
213 214 215
  ```


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

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

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

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

Z
zhangxingxia 已提交
224
**参数:**
Z
zengyawen 已提交
225 226 227 228 229
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
230

Z
zhangxingxia 已提交
231
**示例:**
Z
zhangxingxia 已提交
232
  ```js
Z
zengyawen 已提交
233
  fileio.access(path, function (err) {
Z
zhangxingxia 已提交
234
      // do something
Z
zengyawen 已提交
235
  });
Z
zengyawen 已提交
236 237 238
  ```


Z
zengyawen 已提交
239
## fileio.accessSync
Z
zengyawen 已提交
240

Z
zengyawen 已提交
241 242 243
accessSync(path: string, mode?: number): void

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

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

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

Z
zhangxingxia 已提交
253
**示例:**
Z
zhangxingxia 已提交
254
  ```js
Z
zengyawen 已提交
255 256
  try {
      fileio.accessSync(path);
Z
zhangxingxia 已提交
257 258
  } catch(err) {
      console.info("accessSync failed with error:"+ err);
Z
zengyawen 已提交
259
  }
Z
zengyawen 已提交
260 261 262
  ```


Z
zengyawen 已提交
263
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
264

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

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

269 270
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
271
**参数:**
H
HelloCrease 已提交
272 273 274
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待关闭文件的文件描述符。 |
Z
zengyawen 已提交
275

Z
zhangxingxia 已提交
276
**返回值:**
H
HelloCrease 已提交
277 278
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
279
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
280

Z
zhangxingxia 已提交
281
**示例:**
Z
zhangxingxia 已提交
282
  ```js
Z
zengyawen 已提交
283
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
284
  fileio.close(fd).then(function(){
H
haonan_7 已提交
285
      console.info("close file succeed");
Z
zhangxingxia 已提交
286 287 288
  }).catch(function(err){
      console.info("close file failed with error:"+ err);
  });
Z
zengyawen 已提交
289 290 291
  ```


Z
zengyawen 已提交
292
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
293

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

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

298 299
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
300
**参数:**
H
HelloCrease 已提交
301 302 303 304
  | 参数名      | 类型                        | 必填   | 说明           |
  | -------- | ------------------------- | ---- | ------------ |
  | fd       | number                    | 是    | 待关闭文件的文件描述符。 |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件之后的回调。 |
Z
zengyawen 已提交
305

Z
zhangxingxia 已提交
306
**示例:**
Z
zhangxingxia 已提交
307
  ```js
Z
zengyawen 已提交
308
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
309 310
  fileio.close(fd, function (err) {
      // do something
Z
zengyawen 已提交
311
  });
Z
zengyawen 已提交
312 313 314
  ```


Z
zengyawen 已提交
315
## fileio.closeSync
Z
zengyawen 已提交
316

Z
zengyawen 已提交
317
closeSync(fd: number): void
Z
zengyawen 已提交
318

Z
zengyawen 已提交
319
以同步方法关闭文件。
Z
zengyawen 已提交
320

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

Z
zhangxingxia 已提交
323
**参数:**
H
HelloCrease 已提交
324 325 326
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待关闭文件的文件描述符。 |
Z
zengyawen 已提交
327

Z
zhangxingxia 已提交
328
**示例:**
Z
zhangxingxia 已提交
329
  ```js
Z
zengyawen 已提交
330
  fileio.closeSync(fd);
Z
zengyawen 已提交
331 332 333
  ```


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

Z
zengyawen 已提交
336
close(): Promise&lt;void&gt;
Z
zengyawen 已提交
337

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

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

Z
zhangxingxia 已提交
342
**返回值:**
H
HelloCrease 已提交
343 344
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
345
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
346

Z
zhangxingxia 已提交
347
**示例:**
Z
zhangxingxia 已提交
348 349
  ```js
  fileio.close().then(function(){
H
haonan_7 已提交
350
      console.info("close file stream succeed");
Z
zhangxingxia 已提交
351 352 353
  }).catch(function(err){
      console.info("close file stream failed with error:"+ err);
  });
Z
zengyawen 已提交
354 355 356
  ```


Z
zengyawen 已提交
357
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
358

Z
zengyawen 已提交
359
close(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
360

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

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

Z
zhangxingxia 已提交
365
**参数:**
H
HelloCrease 已提交
366 367 368
  | 参数名      | 类型                        | 必填   | 说明            |
  | -------- | ------------------------- | ---- | ------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件流之后的回调。 |
Z
zengyawen 已提交
369

Z
zhangxingxia 已提交
370
**示例:**
Z
zhangxingxia 已提交
371 372 373
  ```js
  fileio.close(function(err){
      // do something
Z
zengyawen 已提交
374
  });
Z
zengyawen 已提交
375 376 377
  ```


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

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

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

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

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

Z
zhangxingxia 已提交
393
**返回值:**
H
HelloCrease 已提交
394 395
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
396
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
397

Z
zhangxingxia 已提交
398
**示例:**
Z
zhangxingxia 已提交
399 400
  ```js
  fileio.copyFile(src, dest).then(function(){
H
haonan_7 已提交
401
      console.info("copyFile succeed");
Z
zhangxingxia 已提交
402 403 404
  }).catch(function(err){
      console.info("copyFile failed with error:"+ err);
  });
Z
zengyawen 已提交
405 406 407
  ```


Z
zengyawen 已提交
408
## fileio.copyFile
Z
zengyawen 已提交
409

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

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

414 415
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
424
**示例:**
Z
zhangxingxia 已提交
425 426 427
  ```js
  fileio.copyFile(src, dest, function (err) {
      // do something
Z
zengyawen 已提交
428
  });
Z
zengyawen 已提交
429 430 431
  ```


Z
zengyawen 已提交
432
## fileio.copyFileSync
Z
zengyawen 已提交
433

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

Z
zengyawen 已提交
436
以同步方法复制文件。
Z
zengyawen 已提交
437

438 439
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
447
**示例:**
Z
zhangxingxia 已提交
448
  ```js
Z
zengyawen 已提交
449
  fileio.copyFileSync(src, dest);
Z
zengyawen 已提交
450 451 452
  ```


Z
zengyawen 已提交
453
## fileio.mkdir
Z
zengyawen 已提交
454

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

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

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

Z
zhangxingxia 已提交
461
**参数:**
Z
zengyawen 已提交
462 463 464 465
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
466

Z
zhangxingxia 已提交
467
**返回值:**
H
HelloCrease 已提交
468 469
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
470
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
471

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


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

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

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

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

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

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


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

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

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

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

Z
zhangxingxia 已提交
513
**参数:**
Z
zengyawen 已提交
514 515 516 517
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
518

Z
zhangxingxia 已提交
519
**示例:**
Z
zhangxingxia 已提交
520
  ```js
Z
zengyawen 已提交
521 522 523 524 525 526 527 528
  fileio.mkdirSync(path);
  ```


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

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

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

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

Z
zhangxingxia 已提交
533
**参数:**
Z
zengyawen 已提交
534 535 536 537 538
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
| 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的方式打开文件。 |
| 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 已提交
539

Z
zhangxingxia 已提交
540
**返回值:**
H
HelloCrease 已提交
541 542
  | 类型                    | 说明          |
  | --------------------- | ----------- |
H
haonan_7 已提交
543
  | Promise&lt;number&gt; | Promise对象。返回打开文件的文件描述符。 |
Z
zengyawen 已提交
544

Z
zhangxingxia 已提交
545
**示例:**
Z
zhangxingxia 已提交
546 547
  ```js
  fileio.open(path, 0o1, 0o0200).then(function(number){
H
haonan_7 已提交
548
      console.info("open file succeed");
Z
zhangxingxia 已提交
549 550 551
  }).catch(function(error){
      console.info("open file failed with error:"+ err);
  });
Z
zengyawen 已提交
552 553 554
  ```


Z
zengyawen 已提交
555
## fileio.open<sup>7+</sup>
Z
zengyawen 已提交
556

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

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

561 562
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
563
**参数:**
Z
zengyawen 已提交
564 565 566 567 568 569
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                          | 是   | 待打开文件的应用沙箱路径。                                   |
| 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的方式打开文件。 |
| 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 已提交
570

Z
zhangxingxia 已提交
571
**示例:**
Z
zhangxingxia 已提交
572 573 574
  ```js
  fileio.open(path, 0, function(err, fd) {
      // do something
Z
zengyawen 已提交
575
  });
Z
zengyawen 已提交
576 577 578
  ```


Z
zengyawen 已提交
579
## fileio.openSync
Z
zengyawen 已提交
580

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

Z
zengyawen 已提交
583
以同步方法打开文件。
Z
zengyawen 已提交
584

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

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

Z
zhangxingxia 已提交
594
**返回值:**
H
HelloCrease 已提交
595 596
  | 类型     | 说明          |
  | ------ | ----------- |
Z
zengyawen 已提交
597
  | number | 打开文件的文件描述符。 |
Z
zengyawen 已提交
598

Z
zhangxingxia 已提交
599
**示例:**
Z
zhangxingxia 已提交
600
  ```js
R
raoxian 已提交
601
  let fd = fileio.openSync(path, 0o102, 0o640);
Z
zengyawen 已提交
602 603 604
  ```


Z
zengyawen 已提交
605
## fileio.read
Z
zengyawen 已提交
606

607 608 609 610 611
read(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
612

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

615 616
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
624
**返回值:**
Z
zhangxingxia 已提交
625

H
HelloCrease 已提交
626 627
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
H
haonan_7 已提交
628
  | Promise&lt;[ReadOut](#readout)&gt; | Promise对象。返回读取的结果。 |
Z
zengyawen 已提交
629

Z
zhangxingxia 已提交
630
**示例:**
Z
zhangxingxia 已提交
631
  ```js
Z
zengyawen 已提交
632 633
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
634
  fileio.read(fd, buf).then(function(readout){
H
haonan_7 已提交
635
      console.info("read file data succeed");
Z
zhangxingxia 已提交
636
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
637 638 639
  }).catch(function(error){
      console.info("read file data failed with error:"+ error);
  });
Z
zengyawen 已提交
640 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;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
650

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

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

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

Z
zhangxingxia 已提交
663
**示例:**
Z
zhangxingxia 已提交
664
  ```js
Z
zengyawen 已提交
665 666
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
667
  fileio.read(fd, buf, function (err, readOut) {
Z
zhangxingxia 已提交
668
      if (readOut) {
H
haonan_7 已提交
669
          console.info("read file data succeed");
Z
zhangxingxia 已提交
670
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
671 672
      }
  });
Z
zengyawen 已提交
673
  ```
Z
zengyawen 已提交
674 675


Z
zengyawen 已提交
676
## fileio.readSync
Z
zengyawen 已提交
677

678 679 680 681 682
readSync(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): number
Z
zengyawen 已提交
683 684 685

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

686 687
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
695
**返回值:**
H
HelloCrease 已提交
696 697
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
698 699
  | number | 实际读取的长度。 |

Z
zhangxingxia 已提交
700
**示例:**
Z
zhangxingxia 已提交
701
  ```js
Z
zengyawen 已提交
702 703 704 705 706 707 708 709 710 711
  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 已提交
712
删除目录,使用Promise异步回调。
Z
zengyawen 已提交
713

714 715
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
716
**参数:**
Z
zengyawen 已提交
717 718 719
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除目录的应用沙箱路径。 |
Z
zengyawen 已提交
720

Z
zhangxingxia 已提交
721
**返回值:**
H
HelloCrease 已提交
722 723
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
724
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
725

Z
zhangxingxia 已提交
726
**示例:**
Z
zhangxingxia 已提交
727 728
  ```js
  fileio.rmdir(path).then(function() {
H
haonan_7 已提交
729
      console.info("rmdir succeed");
Z
zhangxingxia 已提交
730 731
  }).catch(function(err){
      console.info("rmdir failed with error:"+ err);
Z
zengyawen 已提交
732 733 734 735 736 737 738 739
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
744
**参数:**
Z
zengyawen 已提交
745 746 747 748
| 参数名   | 类型                      | 必填 | 说明                       |
| -------- | ------------------------- | ---- | -------------------------- |
| path     | string                    | 是   | 待删除目录的应用沙箱路径。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步删除目录之后的回调。   |
Z
zengyawen 已提交
749

Z
zhangxingxia 已提交
750
**示例:**
Z
zhangxingxia 已提交
751 752 753
  ```js
  fileio.rmdir(path, function(err){
      // do something
H
haonan_7 已提交
754
      console.info("rmdir succeed");
Z
zengyawen 已提交
755 756 757 758
  });
  ```


759
## fileio.rmdirSync<sup>7+</sup>
Z
zengyawen 已提交
760

761
rmdirSync(path: string): void
Z
zengyawen 已提交
762 763 764

以同步方法删除目录。

765 766
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
767
**参数:**
Z
zengyawen 已提交
768 769 770
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除目录的应用沙箱路径。 |
Z
zengyawen 已提交
771

Z
zhangxingxia 已提交
772
**示例:**
Z
zhangxingxia 已提交
773
  ```js
Z
zengyawen 已提交
774 775 776 777 778 779 780 781
  fileio.rmdirSync(path);
  ```


## fileio.unlink

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

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

784 785
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
786
**参数:**
Z
zengyawen 已提交
787 788 789
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除文件的应用沙箱路径。 |
Z
zengyawen 已提交
790

Z
zhangxingxia 已提交
791
**返回值:**
H
HelloCrease 已提交
792 793
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
794
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
795

Z
zhangxingxia 已提交
796
**示例:**
Z
zhangxingxia 已提交
797 798
  ```js
  fileio.unlink(path).then(function(){
H
haonan_7 已提交
799
      console.info("remove file succeed");
Z
zhangxingxia 已提交
800 801 802
  }).catch(function(error){
      console.info("remove file failed with error:"+ error);
  });
Z
zengyawen 已提交
803 804 805 806 807 808 809
  ```


## fileio.unlink

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

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

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

Z
zhangxingxia 已提交
814
**参数:**
Z
zengyawen 已提交
815 816 817 818
| 参数名   | 类型                      | 必填 | 说明                       |
| -------- | ------------------------- | ---- | -------------------------- |
| path     | string                    | 是   | 待删除文件的应用沙箱路径。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步删除文件之后的回调。   |
Z
zengyawen 已提交
819

Z
zhangxingxia 已提交
820
**示例:**
Z
zhangxingxia 已提交
821 822
  ```js
  fileio.unlink(path, function(err) {
H
haonan_7 已提交
823
      console.info("remove file succeed");
Z
zengyawen 已提交
824 825 826 827 828 829 830 831 832 833
  });
  ```


## fileio.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

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

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

Z
zhangxingxia 已提交
841
**示例:**
Z
zhangxingxia 已提交
842
  ```js
Z
zengyawen 已提交
843 844 845 846 847 848
  fileio.unlinkSync(path);
  ```


## fileio.write

849 850 851 852 853 854
write(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
855

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

858 859
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
860
**参数:**
H
HelloCrease 已提交
861 862 863 864
  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd      | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
865
  | 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 已提交
866

Z
zhangxingxia 已提交
867
**返回值:**
H
HelloCrease 已提交
868 869
  | 类型                    | 说明       |
  | --------------------- | -------- |
H
haonan_7 已提交
870
  | Promise&lt;number&gt; | Promise对象。返回实际写入的长度。 |
Z
zengyawen 已提交
871

Z
zhangxingxia 已提交
872
**示例:**
Z
zhangxingxia 已提交
873
  ```js
Z
zengyawen 已提交
874
  let fd = fileio.openSync(fpath, 0o100 | 0o2, 0o666);
Z
zhangxingxia 已提交
875
  fileio.write(fd, "hello, world").then(function(number){
H
haonan_7 已提交
876
       console.info("write data to file succeed and size is:"+ number);
Z
zhangxingxia 已提交
877 878 879
  }).catch(function(err){
      console.info("write data to file failed with error:"+ err);
  });
Z
zengyawen 已提交
880 881 882 883 884
  ```


## fileio.write

885 886 887 888 889 890
write(fd: number, buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
891

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

894 895
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
896
**参数:**
H
HelloCrease 已提交
897 898 899 900
  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer   | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
901
  | 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。 |
H
HelloCrease 已提交
902
  | callback | AsyncCallback&lt;number&gt;     | 是    | 异步将数据写入完成后执行的回调函数。                       |
Z
zengyawen 已提交
903

Z
zhangxingxia 已提交
904
**示例:**
Z
zhangxingxia 已提交
905
  ```js
Z
zengyawen 已提交
906 907
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
  fileio.write(fd, "hello, world", function (err, bytesWritten) {
Z
zhangxingxia 已提交
908
      if (bytesWritten) {
H
haonan_7 已提交
909
         console.info("write data to file succeed and size is:"+ bytesWritten);
Z
zengyawen 已提交
910 911 912 913 914 915 916
      }
  });
  ```


## fileio.writeSync

917 918 919 920 921 922
writeSync(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
923 924 925

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

926 927
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
928
**参数:**
H
HelloCrease 已提交
929 930 931 932
  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd      | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
933
  | 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 已提交
934

Z
zhangxingxia 已提交
935
**返回值:**
H
HelloCrease 已提交
936 937
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
938 939
  | number | 实际写入的长度。 |

Z
zhangxingxia 已提交
940
**示例:**
Z
zhangxingxia 已提交
941
  ```js
Z
zengyawen 已提交
942 943 944 945 946 947 948 949 950
  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 已提交
951
计算文件的哈希值,使用Promise异步回调。
Z
zengyawen 已提交
952

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

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

Z
zhangxingxia 已提交
961
**返回值:**
H
HelloCrease 已提交
962 963
  | 类型                    | 说明                         |
  | --------------------- | -------------------------- |
H
haonan_7 已提交
964
  | Promise&lt;string&gt; | Promise对象。返回文件的哈希值。表示为十六进制数字串,所有字母均大写。 |
Z
zengyawen 已提交
965

Z
zhangxingxia 已提交
966
**示例:**
Z
zhangxingxia 已提交
967 968
  ```js
  fileio.hash(path, "sha256").then(function(str){
H
haonan_7 已提交
969
      console.info("calculate file hash succeed:"+ str);
Z
zhangxingxia 已提交
970 971 972
  }).catch(function(error){
      console.info("calculate file hash failed with error:"+ err);
  });
Z
zengyawen 已提交
973 974 975 976 977
  ```


## fileio.hash

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

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

982 983
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
991
**示例:**
Z
zhangxingxia 已提交
992
  ```js
Z
zengyawen 已提交
993
  fileio.hash(fpath, "sha256", function(err, hashStr) {
Z
zhangxingxia 已提交
994
      if (hashStr) {
H
haonan_7 已提交
995
          console.info("calculate file hash succeed:"+ hashStr);
Z
zengyawen 已提交
996 997 998 999 1000 1001 1002 1003 1004
      }
  });
  ```


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

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

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

1007 1008
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1009
**参数:**
Z
zengyawen 已提交
1010 1011
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1012
| path   | string | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1013
| 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 已提交
1014

Z
zhangxingxia 已提交
1015
**返回值:**
H
HelloCrease 已提交
1016 1017
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1018
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1019

Z
zhangxingxia 已提交
1020
**示例:**
Z
zhangxingxia 已提交
1021 1022
  ```js
  fileio.chmod(path, mode).then(function() {
H
haonan_7 已提交
1023
      console.info("chmod succeed");
Z
zhangxingxia 已提交
1024 1025
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
1026 1027 1028 1029 1030 1031 1032 1033
  });
  ```


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

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

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

1036 1037
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1038
**参数:**
Z
zengyawen 已提交
1039 1040
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
H
haonan_7 已提交
1041
| path     | string                    | 是   | 所需变更权限的文件的应用沙箱路径。                               |
Z
zengyawen 已提交
1042 1043
| 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 已提交
1044

Z
zhangxingxia 已提交
1045
**示例:**
Z
zhangxingxia 已提交
1046 1047 1048
  ```js
  fileio.chmod(path, mode, function (err) {
      // do something
Z
zengyawen 已提交
1049 1050 1051 1052 1053 1054 1055 1056
  });
  ```


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

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

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

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

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

Z
zhangxingxia 已提交
1067
**示例:**
Z
zhangxingxia 已提交
1068
  ```js
Z
zengyawen 已提交
1069 1070 1071 1072 1073 1074 1075 1076
  fileio.chmodSync(fpath, mode);
  ```


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

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

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

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

Z
zhangxingxia 已提交
1081
**参数:**
H
HelloCrease 已提交
1082 1083
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
H
haonan_7 已提交
1084
  | fd   | number | 是    | 待获取文件状态的文件描述符。 |
Z
zengyawen 已提交
1085

Z
zhangxingxia 已提交
1086
**返回值:**
H
HelloCrease 已提交
1087 1088
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
H
haonan_7 已提交
1089
  | Promise&lt;[Stat](#stat)&gt; | Promise对象。返回表示文件状态的具体信息。 |
Z
zengyawen 已提交
1090

Z
zhangxingxia 已提交
1091
**示例:**
Z
zhangxingxia 已提交
1092 1093
  ```js
  fileio.fstat(fd).then(function(stat){
H
haonan_7 已提交
1094
      console.info("fstat succeed:"+ JSON.stringify(stat));
Z
zhangxingxia 已提交
1095 1096 1097
  }).catch(function(err){
      console.info("fstat failed with error:"+ err);
  });
Z
zengyawen 已提交
1098 1099 1100 1101 1102 1103 1104
  ```


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

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

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

1107 1108
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1115
**示例:**
Z
zhangxingxia 已提交
1116
  ```js
Z
zengyawen 已提交
1117
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1118 1119
  fileio.fstat(fd, function (err) {
      // do something
Z
zengyawen 已提交
1120 1121 1122 1123 1124 1125 1126 1127
  });
  ```


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

fstatSync(fd: number): Stat

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

1130 1131
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1132
**参数:**
H
HelloCrease 已提交
1133 1134
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
H
haonan_7 已提交
1135
  | fd   | number | 是    | 待获取文件状态的文件描述符。 |
Z
zengyawen 已提交
1136

Z
zhangxingxia 已提交
1137
**返回值:**
H
HelloCrease 已提交
1138 1139
  | 类型            | 说明         |
  | ------------- | ---------- |
H
haonan_7 已提交
1140
  | [Stat](#stat) | 表示文件状态的具体信息。 |
Z
zengyawen 已提交
1141

Z
zhangxingxia 已提交
1142
**示例:**
Z
zhangxingxia 已提交
1143
  ```js
Z
zengyawen 已提交
1144 1145 1146 1147 1148 1149 1150
  let fd = fileio.openSync(path);
  let stat = fileio.fstatSync(fd);
  ```


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

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

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

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

Z
zhangxingxia 已提交
1157
**参数:**
H
HelloCrease 已提交
1158 1159 1160
  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | fd   | number | 是    | 待截断文件的文件描述符。     |
H
haonan_7 已提交
1161
  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1162

Z
zhangxingxia 已提交
1163
**返回值:**
H
HelloCrease 已提交
1164 1165
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1166
  | Promise&lt;void&gt; | Promise对象。无返回值。|
Z
zengyawen 已提交
1167

Z
zhangxingxia 已提交
1168
**示例:**
Z
zhangxingxia 已提交
1169
  ```js
Z
zengyawen 已提交
1170
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1171
  fileio.ftruncate(fd, 5).then(function(err) {    
H
haonan_7 已提交
1172
      console.info("truncate file succeed");
Z
zhangxingxia 已提交
1173 1174
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1175 1176 1177 1178 1179 1180 1181 1182
  });
  ```


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

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

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

1185 1186
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1187
**参数:**
H
HelloCrease 已提交
1188 1189 1190 1191
  | 参数名      | 类型                        | 必填   | 说明               |
  | -------- | ------------------------- | ---- | ---------------- |
  | fd       | number                    | 是    | 待截断文件的文件描述符。     |
  | len      | number                    | 是    | 文件截断后的长度,以字节为单位。 |
W
wangbo 已提交
1192
  | callback | AsyncCallback&lt;void&gt; | 是    | 回调函数,本调用无返回值。  |
Z
zengyawen 已提交
1193

Z
zhangxingxia 已提交
1194
**示例:**
Z
zhangxingxia 已提交
1195 1196 1197
  ```js
  fileio.ftruncate(fd, len, function(err){
      // do something
Z
zengyawen 已提交
1198 1199 1200 1201 1202 1203 1204 1205 1206 1207
  });
  ```


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

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

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

1208 1209
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1210
**参数:**
H
HelloCrease 已提交
1211 1212 1213 1214
  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | fd   | number | 是    | 待截断文件的文件描述符。     |
  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1215

Z
zhangxingxia 已提交
1216
**示例:**
Z
zhangxingxia 已提交
1217
  ```js
Z
zhangxingxia 已提交
1218
  fileio.ftruncateSync(fd, len);
Z
zengyawen 已提交
1219 1220 1221 1222 1223
  ```


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

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

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

1228 1229
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1230
**参数:**
Z
zengyawen 已提交
1231 1232 1233
| 参数名 | 类型   | 必填 | 说明                             |
| ------ | ------ | ---- | -------------------------------- |
| path   | string | 是   | 待截断文件的应用沙箱路径。       |
H
haonan_7 已提交
1234
| len    | number | 否   | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1235

Z
zhangxingxia 已提交
1236
**返回值:**
H
HelloCrease 已提交
1237 1238
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1239
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1240

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


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

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

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

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

Z
zhangxingxia 已提交
1259
**参数:**
Z
zengyawen 已提交
1260 1261 1262 1263
| 参数名   | 类型                      | 必填 | 说明                             |
| -------- | ------------------------- | ---- | -------------------------------- |
| path     | string                    | 是   | 待截断文件的应用沙箱路径。       |
| len      | number                    | 是   | 文件截断后的长度,以字节为单位。 |
W
wangbo 已提交
1264
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数,本调用无返回值。   |
Z
zengyawen 已提交
1265

Z
zhangxingxia 已提交
1266
**示例:**
Z
zhangxingxia 已提交
1267 1268 1269
  ```js
  fileio.truncate(path, len, function(err){
      // do something
Z
zengyawen 已提交
1270 1271 1272 1273 1274 1275
  });
  ```


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

1276
truncateSync(path: string, len?: number): void
Z
zengyawen 已提交
1277 1278 1279

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

1280 1281
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1282
**参数:**
Z
zengyawen 已提交
1283 1284 1285 1286
| 参数名 | 类型   | 必填 | 说明                             |
| ------ | ------ | ---- | -------------------------------- |
| path   | string | 是   | 待截断文件的应用沙箱路径。       |
| len    | number | 否   | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1287

Z
zhangxingxia 已提交
1288
**示例:**
Z
zhangxingxia 已提交
1289
  ```js
Z
zhangxingxia 已提交
1290
  fileio.truncateSync(path, len);
Z
zengyawen 已提交
1291 1292 1293 1294 1295
  ```


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

1296 1297 1298 1299 1300
readText(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): Promise&lt;string&gt;
Z
zengyawen 已提交
1301

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

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

Z
zhangxingxia 已提交
1306
**参数:**
Z
zengyawen 已提交
1307 1308 1309 1310
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
1311

Z
zhangxingxia 已提交
1312
**返回值:**
H
HelloCrease 已提交
1313 1314
  | 类型                    | 说明         |
  | --------------------- | ---------- |
H
haonan_7 已提交
1315
  | Promise&lt;string&gt; | Promise对象。返回读取文件的内容。 |
Z
zengyawen 已提交
1316

Z
zhangxingxia 已提交
1317
**示例:**
Z
zhangxingxia 已提交
1318 1319
  ```js
  fileio.readText(path).then(function(str) {
H
haonan_7 已提交
1320
      console.info("readText succeed:"+ str);
Z
zhangxingxia 已提交
1321 1322
  }).catch(function(err){
      console.info("readText failed with error:"+ err);
Z
zengyawen 已提交
1323 1324 1325 1326 1327 1328
  });
  ```


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

1329 1330 1331 1332 1333
readText(filePath: string, options: {
    position?: number;
    length?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
1334

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

1337 1338
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1346
**示例:**
Z
zhangxingxia 已提交
1347
  ```js
Z
zengyawen 已提交
1348
  fileio.readText(path, function(err, str){
Z
zhangxingxia 已提交
1349
      // do something
Z
zengyawen 已提交
1350 1351 1352 1353 1354 1355
  });
  ```


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

1356 1357 1358 1359 1360
readTextSync(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): string
Z
zengyawen 已提交
1361 1362 1363

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

1364 1365
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1366
**参数:**
Z
zengyawen 已提交
1367 1368 1369 1370
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
1371

Z
zhangxingxia 已提交
1372
**返回值:**
Z
zhangxingxia 已提交
1373 1374 1375
  | 类型   | 说明                 |
  | ------ | -------------------- |
  | string | 返回读取文件的内容。 |
Z
zengyawen 已提交
1376

Z
zhangxingxia 已提交
1377
**示例:**
Z
zhangxingxia 已提交
1378 1379
  ```js
  let str = fileio.readTextSync(path, {position: 1, length: 3});
Z
zengyawen 已提交
1380 1381 1382 1383 1384 1385 1386
  ```


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

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

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

1389 1390
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1391
**参数:**
Z
zengyawen 已提交
1392 1393
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
W
wangbo 已提交
1394
| path   | string | 是   | 目标文件的应用沙箱路径。 |
Z
zengyawen 已提交
1395

Z
zhangxingxia 已提交
1396
**返回值:**
H
HelloCrease 已提交
1397 1398
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
W
wangbo 已提交
1399
  | Promise&lt;[Stat](#stat)&gt; | promise对象,返回文件对象,表示文件的具体信息,详情见stat。 |
Z
zengyawen 已提交
1400

Z
zhangxingxia 已提交
1401
**示例:**
Z
zhangxingxia 已提交
1402 1403
  ```js
  fileio.lstat(path).then(function(stat){
H
haonan_7 已提交
1404
      console.info("get link status succeed:"+ number);
Z
zhangxingxia 已提交
1405 1406 1407
  }).catch(function(err){
      console.info("get link status failed with error:"+ err);
  });
Z
zengyawen 已提交
1408 1409 1410 1411 1412 1413 1414
  ```


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

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

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

1417 1418
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1419
**参数:**
Z
zengyawen 已提交
1420 1421
| 参数名   | 类型                               | 必填 | 说明                                   |
| -------- | ---------------------------------- | ---- | -------------------------------------- |
W
wangbo 已提交
1422 1423
| path     | string                             | 是   | 目标文件的应用沙箱路径。 |
| callback | AsyncCallback&lt;[Stat](#stat)&gt; | 是   | 回调函数,返回文件的具体信息。       |
Z
zengyawen 已提交
1424

Z
zhangxingxia 已提交
1425
**示例:**
Z
zhangxingxia 已提交
1426 1427 1428
  ```js
  fileio.lstat(path, function (err, stat) {
      // do something
Z
zengyawen 已提交
1429
  });
Z
zengyawen 已提交
1430 1431 1432 1433 1434 1435 1436
  ```


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

lstatSync(path:string): Stat

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

1439 1440
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1441
**参数:**
Z
zengyawen 已提交
1442 1443
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
W
wangbo 已提交
1444
| path   | string | 是   | 目标文件的应用沙箱路径。 |
Z
zengyawen 已提交
1445

Z
zhangxingxia 已提交
1446
**返回值:**
H
HelloCrease 已提交
1447 1448
  | 类型            | 说明         |
  | ------------- | ---------- |
Z
zengyawen 已提交
1449 1450
  | [Stat](#stat) | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1451
**示例:**
Z
zhangxingxia 已提交
1452
  ```js
Z
zengyawen 已提交
1453 1454 1455 1456 1457 1458
  let stat = fileio.lstatSync(path);
  ```


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

1459 1460 1461 1462 1463
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
1464

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

1467 1468
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1475
**返回值:**
H
HelloCrease 已提交
1476 1477
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
H
haonan_7 已提交
1478
  | Promise&lt;[ReadOut](#readout)&gt; | Promise对象。返回读取的结果。 |
Z
zengyawen 已提交
1479

Z
zhangxingxia 已提交
1480
**示例:**
Z
zhangxingxia 已提交
1481 1482
  ```js
  fileio.read(new ArrayBuffer(4096)).then(function(readout){
H
haonan_7 已提交
1483
      console.info("read file data succeed");
Z
zhangxingxia 已提交
1484
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
1485 1486 1487
  }).catch(function(err){
      console.info("read file data failed with error:"+ err);
  });
Z
zengyawen 已提交
1488 1489 1490 1491 1492
  ```


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

1493 1494 1495 1496 1497
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
1498

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

1501 1502
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1510
**示例:**
Z
zhangxingxia 已提交
1511
  ```js
Z
zengyawen 已提交
1512 1513
  let buf = new ArrayBuffer(4096);
  fileio.read(buf, function (err, readOut) {
Z
zhangxingxia 已提交
1514
      if (readOut) {
H
haonan_7 已提交
1515
          console.info("read file data succeed");
Z
zhangxingxia 已提交
1516
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
1517 1518 1519 1520 1521 1522 1523 1524 1525
      }
  });
  ```


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

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

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

1528 1529
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1530
**参数:**
Z
zengyawen 已提交
1531 1532 1533 1534
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
| newPath | String | 是   | 目标文件的新应用沙箱路径。   |
Z
zengyawen 已提交
1535

Z
zhangxingxia 已提交
1536
**返回值:**
H
HelloCrease 已提交
1537 1538
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1539
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1540

Z
zhangxingxia 已提交
1541
**示例:**
Z
zhangxingxia 已提交
1542
  ```js
Z
zhangxingxia 已提交
1543
  fileio.rename(oldPath, newPath).then(function() {
H
haonan_7 已提交
1544
      console.info("rename succeed");
Z
zhangxingxia 已提交
1545 1546
  }).catch(function(err){
      console.info("rename failed with error:"+ err);
Z
zengyawen 已提交
1547 1548 1549 1550 1551 1552 1553 1554
  });
  ```


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

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

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

1557 1558
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1559
**参数:**
Z
zengyawen 已提交
1560 1561 1562 1563 1564
| 参数名   | 类型                      | 必填 | 说明                         |
| -------- | ------------------------- | ---- | ---------------------------- |
| oldPath  | string                    | 是   | 目标文件的当前应用沙箱路径。 |
| newPath  | String                    | 是   | 目标文件的新应用沙箱路径。   |
| Callback | AsyncCallback&lt;void&gt; | 是   | 异步重命名文件之后的回调。   |
Z
zengyawen 已提交
1565

Z
zhangxingxia 已提交
1566
**示例:**
Z
zhangxingxia 已提交
1567
  ```js
Z
zhangxingxia 已提交
1568
  fileio.rename(oldPath, newPath, function(err){
Z
zengyawen 已提交
1569 1570 1571 1572 1573 1574 1575 1576 1577 1578
  });
  ```


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

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

以同步方法重命名文件。

1579 1580
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1581
**参数:**
Z
zengyawen 已提交
1582 1583 1584 1585
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
| newPath | String | 是   | 目标文件的新应用沙箱路径。   |
Z
zengyawen 已提交
1586

Z
zhangxingxia 已提交
1587
**示例:**
Z
zhangxingxia 已提交
1588
  ```js
Z
zhangxingxia 已提交
1589
  fileio.renameSync(oldPath, newPath);
Z
zengyawen 已提交
1590 1591 1592 1593 1594 1595 1596
  ```


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

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

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

1599 1600
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1601
**参数:**
H
HelloCrease 已提交
1602 1603 1604
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1605

Z
zhangxingxia 已提交
1606
**返回值:**
H
HelloCrease 已提交
1607 1608
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1609
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1610

Z
zhangxingxia 已提交
1611
**示例:**
Z
zhangxingxia 已提交
1612 1613
  ```js
  fileio.fsync(fd).then(function(){
H
haonan_7 已提交
1614
      console.info("sync data succeed");
Z
zhangxingxia 已提交
1615 1616 1617
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
  });
Z
zengyawen 已提交
1618 1619 1620 1621 1622 1623 1624
  ```


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

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

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

1627 1628
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1629
**参数:**
H
HelloCrease 已提交
1630 1631 1632 1633
  | 参数名      | 类型                        | 必填   | 说明              |
  | -------- | ------------------------- | ---- | --------------- |
  | fd       | number                    | 是    | 待同步文件的文件描述符。    |
  | Callback | AsyncCallback&lt;void&gt; | 是    | 异步将文件数据同步之后的回调。 |
Z
zengyawen 已提交
1634

Z
zhangxingxia 已提交
1635
**示例:**
Z
zhangxingxia 已提交
1636
  ```js
Z
zengyawen 已提交
1637
  fileio.fsync(fd, function(err){
Z
zhangxingxia 已提交
1638
      // do something
Z
zengyawen 已提交
1639 1640 1641 1642 1643 1644 1645 1646 1647 1648
  });
  ```


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

fsyncSync(fd: number): void

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

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

Z
zhangxingxia 已提交
1651
**参数:**
H
HelloCrease 已提交
1652 1653 1654
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1655

Z
zhangxingxia 已提交
1656
**示例:**
Z
zhangxingxia 已提交
1657
  ```js
Z
zengyawen 已提交
1658 1659 1660 1661 1662 1663 1664 1665
  fileio.fyncsSync(fd);
  ```


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

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

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

1668 1669
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1670
**参数:**
H
HelloCrease 已提交
1671 1672 1673
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1674

Z
zhangxingxia 已提交
1675
**返回值:**
H
HelloCrease 已提交
1676 1677
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1678
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1679

Z
zhangxingxia 已提交
1680
**示例:**
Z
zhangxingxia 已提交
1681 1682
  ```js
  fileio.fdatasync(fd).then(function(err) {
H
haonan_7 已提交
1683
      console.info("sync data succeed");
Z
zhangxingxia 已提交
1684 1685
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
Z
zengyawen 已提交
1686 1687 1688 1689 1690 1691 1692 1693
  });
  ```


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

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

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

1696 1697
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1698
**参数:**
H
HelloCrease 已提交
1699 1700 1701 1702
  | 参数名      | 类型                              | 必填   | 说明                |
  | -------- | ------------------------------- | ---- | ----------------- |
  | fd       | number                          | 是    | 待同步文件的文件描述符。      |
  | callback | AsyncCallback&nbsp;&lt;void&gt; | 是    | 异步将文件内容数据同步之后的回调。 |
Z
zengyawen 已提交
1703

Z
zhangxingxia 已提交
1704
**示例:**
Z
zhangxingxia 已提交
1705
  ```js
Z
zengyawen 已提交
1706
  fileio.fdatasync (fd, function (err) {
Z
zhangxingxia 已提交
1707
      // do something
Z
zengyawen 已提交
1708 1709 1710 1711 1712 1713 1714 1715 1716 1717
  });
  ```


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

fdatasyncSync(fd: number): void

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

1718 1719
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1720
**参数:**
H
HelloCrease 已提交
1721 1722 1723
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1724

Z
zhangxingxia 已提交
1725
**示例:**
Z
zhangxingxia 已提交
1726
  ```js
Z
zengyawen 已提交
1727 1728 1729 1730 1731 1732 1733 1734
  let stat = fileio.fdatasyncSync(fd);
  ```


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

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

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

1737 1738
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1739
**参数:**
Z
zengyawen 已提交
1740 1741 1742 1743
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| target  | string | 是   | 目标文件的应用沙箱路径。     |
| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
Z
zengyawen 已提交
1744

Z
zhangxingxia 已提交
1745
**返回值:**
H
HelloCrease 已提交
1746 1747
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1748
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1749

Z
zhangxingxia 已提交
1750
**示例:**
Z
zhangxingxia 已提交
1751 1752
  ```js
  fileio.symlink(target, srcPath).then(function() {
H
haonan_7 已提交
1753
      console.info("symlink succeed");
Z
zhangxingxia 已提交
1754 1755
  }).catch(function(err){
      console.info("symlink failed with error:"+ err);
Z
zengyawen 已提交
1756 1757 1758 1759 1760 1761 1762 1763
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
1768
**参数:**
Z
zengyawen 已提交
1769 1770 1771 1772 1773
| 参数名   | 类型                      | 必填 | 说明                             |
| -------- | ------------------------- | ---- | -------------------------------- |
| target   | string                    | 是   | 目标文件的应用沙箱路径。         |
| srcPath  | string                    | 是   | 符号链接文件的应用沙箱路径。     |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步创建符号链接信息之后的回调。 |
Z
zengyawen 已提交
1774

Z
zhangxingxia 已提交
1775
**示例:**
Z
zhangxingxia 已提交
1776 1777 1778
  ```js
  fileio.symlink(target, srcPath, function (err) {
      // do something
Z
zengyawen 已提交
1779 1780 1781 1782 1783 1784 1785 1786 1787 1788
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
1791
**参数:**
Z
zengyawen 已提交
1792 1793 1794 1795
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| target  | string | 是   | 目标文件的应用沙箱路径。     |
| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
Z
zengyawen 已提交
1796

Z
zhangxingxia 已提交
1797
**示例:**
Z
zhangxingxia 已提交
1798
  ```js
Z
zengyawen 已提交
1799 1800 1801 1802 1803 1804 1805 1806
  fileio.symlinkSync(target, srcPath);
  ```


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

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

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

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

Z
zhangxingxia 已提交
1811
**参数:**
Z
zengyawen 已提交
1812 1813 1814 1815 1816
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待改变文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID(UserID)。        |
| gid    | number | 是   | 新的GID(GroupID)。       |
Z
zengyawen 已提交
1817

Z
zhangxingxia 已提交
1818
**返回值:**
H
HelloCrease 已提交
1819 1820
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1821
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1822

Z
zhangxingxia 已提交
1823
**示例:**
Z
zhangxingxia 已提交
1824
  ```js
Z
zengyawen 已提交
1825
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
1826
  fileio.chown(path, stat.uid, stat.gid).then(function(){
H
haonan_7 已提交
1827
      console.info("chown succeed");
Z
zhangxingxia 已提交
1828 1829 1830
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
1831 1832 1833 1834 1835 1836 1837
  ```


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

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

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

1840 1841
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1842
**参数:**
Z
zengyawen 已提交
1843 1844 1845 1846 1847 1848
| 参数名   | 类型                      | 必填 | 说明                           |
| -------- | ------------------------- | ---- | ------------------------------ |
| path     | string                    | 是   | 待改变文件的应用沙箱路径。     |
| uid      | number                    | 是   | 新的UID。                      |
| gid      | number                    | 是   | 新的GID。                      |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
1849

Z
zhangxingxia 已提交
1850
**示例:**
Z
zhangxingxia 已提交
1851
  ```js
Z
zengyawen 已提交
1852 1853
  let stat = fileio.statSync(fpath)
  fileio.chown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
1854
      // do something
Z
zengyawen 已提交
1855 1856 1857 1858 1859 1860 1861 1862 1863 1864
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
1867
**参数:**
Z
zengyawen 已提交
1868 1869 1870 1871 1872
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待改变文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
1873

Z
zhangxingxia 已提交
1874
**示例:**
Z
zhangxingxia 已提交
1875
  ```js
Z
zengyawen 已提交
1876 1877 1878 1879 1880 1881 1882 1883 1884
  let stat = fileio.statSync(fpath)
  fileio.chownSync(path, stat.uid, stat.gid);
  ```


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

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

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

1887 1888
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1889
**参数:**
H
HelloCrease 已提交
1890 1891 1892
  | 参数名    | 类型     | 必填   | 说明                          |
  | ------ | ------ | ---- | --------------------------- |
  | prefix | string | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
Z
zengyawen 已提交
1893

Z
zhangxingxia 已提交
1894
**返回值:**
Z
zhangxingxia 已提交
1895
  | 类型                   | 说明         |
H
HelloCrease 已提交
1896
  | --------------------- | ---------- |
H
haonan_7 已提交
1897
  | Promise&lt;string&gt; | Promise对象。返回生成的唯一目录路径。 |
Z
zengyawen 已提交
1898

Z
zhangxingxia 已提交
1899
**示例:**
Z
zhangxingxia 已提交
1900 1901
  ```js
  fileio.mkdtemp(path + "XXXX").then(function(path){
H
haonan_7 已提交
1902
      console.info("mkdtemp succeed:"+ path);
Z
zhangxingxia 已提交
1903 1904 1905
  }).catch(function(err){
      console.info("mkdtemp failed with error:"+ err);
  });
Z
zengyawen 已提交
1906 1907 1908 1909 1910 1911 1912
  ```


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

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

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

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

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

Z
zhangxingxia 已提交
1923
**示例:**
Z
zhangxingxia 已提交
1924
  ```js
Z
zengyawen 已提交
1925
  fileio.mkdtemp(path + "XXXX", function (err, res) {
Z
zhangxingxia 已提交
1926
      // do something
Z
zengyawen 已提交
1927 1928 1929 1930 1931 1932 1933 1934 1935 1936
  });
  ```


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

mkdtempSync(prefix: string): string

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

1937 1938
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1939
**参数:**
H
HelloCrease 已提交
1940 1941 1942
  | 参数名    | 类型     | 必填   | 说明                          |
  | ------ | ------ | ---- | --------------------------- |
  | prefix | string | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
Z
zengyawen 已提交
1943

Z
zhangxingxia 已提交
1944
**返回值:**
Z
zhangxingxia 已提交
1945
  | 类型    | 说明         |
H
HelloCrease 已提交
1946
  | ------ | ---------- |
Z
zengyawen 已提交
1947 1948
  | string | 产生的唯一目录路径。 |

Z
zhangxingxia 已提交
1949
**示例:**
Z
zhangxingxia 已提交
1950
  ```js
Z
zengyawen 已提交
1951 1952 1953 1954 1955 1956 1957 1958
  let res = fileio.mkdtempSync(path + "XXXX");
  ```


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

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

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

1961 1962
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1963
**参数:**
H
HelloCrease 已提交
1964 1965 1966 1967
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
1968

Z
zhangxingxia 已提交
1969
**返回值:**
Z
zhangxingxia 已提交
1970
  | 类型                 | 说明                           |
H
HelloCrease 已提交
1971
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
1972
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
1973

Z
zhangxingxia 已提交
1974
**示例:**
Z
zhangxingxia 已提交
1975 1976
  ```js
  fileio.fchmod(fd, mode).then(function() {
H
haonan_7 已提交
1977
      console.info("chmod succeed");
Z
zhangxingxia 已提交
1978 1979
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
1980 1981 1982 1983 1984 1985 1986 1987
  });
  ```


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

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

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

1990 1991
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1992
**参数:**
H
HelloCrease 已提交
1993 1994 1995 1996 1997
  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
1998

Z
zhangxingxia 已提交
1999
**示例:**
Z
zhangxingxia 已提交
2000
  ```js
Z
zengyawen 已提交
2001
  fileio.fchmod(fd, mode, function (err) {
Z
zhangxingxia 已提交
2002
      // do something
Z
zengyawen 已提交
2003 2004 2005 2006 2007 2008
  });
  ```


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

2009
fchmodSync(fd: number, mode: number): void
Z
zengyawen 已提交
2010 2011 2012

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

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

Z
zhangxingxia 已提交
2015
**参数:**
H
HelloCrease 已提交
2016 2017 2018 2019
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2020

Z
zhangxingxia 已提交
2021
**示例:**
Z
zhangxingxia 已提交
2022
  ```js
Z
zengyawen 已提交
2023 2024 2025 2026 2027 2028 2029 2030
   fileio.fchmodSync(fd, mode);
  ```


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

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

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

2033 2034
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2035
**参数:**
Z
zengyawen 已提交
2036 2037 2038 2039
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
2040

Z
zhangxingxia 已提交
2041
**返回值:**
H
HelloCrease 已提交
2042 2043
  | 类型                                | 说明        |
  | --------------------------------- | --------- |
H
haonan_7 已提交
2044
  | Promise&lt;[Stream](#stream7)&gt; | Promise对象。返回文件流的结果。 |
Z
zengyawen 已提交
2045

Z
zhangxingxia 已提交
2046
**示例:**
Z
zhangxingxia 已提交
2047 2048
  ```js
  fileio.createStream(path, "r+").then(function(stream){
H
haonan_7 已提交
2049
      console.info("createStream succeed");
Z
zhangxingxia 已提交
2050 2051 2052
  }).catch(function(err){
      console.info("createStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2053 2054 2055 2056 2057 2058 2059
  ```


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

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

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

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

Z
zhangxingxia 已提交
2064
**参数:**
Z
zengyawen 已提交
2065 2066 2067 2068 2069
| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
2070

Z
zhangxingxia 已提交
2071
**示例:**
Z
zhangxingxia 已提交
2072 2073 2074
  ```js
  fileio.createStream(path, mode, function(err, stream){
      // do something
Z
zengyawen 已提交
2075 2076 2077 2078 2079 2080 2081 2082 2083 2084
  });
  ```


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

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

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

2085 2086
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2087
**参数:**
Z
zengyawen 已提交
2088 2089 2090 2091
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| 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 已提交
2092

Z
zhangxingxia 已提交
2093
**返回值:**
Z
zhangxingxia 已提交
2094
  | 类型                | 说明        |
H
HelloCrease 已提交
2095
  | ------------------ | --------- |
Z
zengyawen 已提交
2096 2097
  | [Stream](#stream7) | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2098
**示例:**
Z
zhangxingxia 已提交
2099
  ```js
Z
zengyawen 已提交
2100 2101 2102 2103 2104 2105 2106 2107
  let ss = fileio.createStreamSync(path, "r+");
  ```


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

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

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

2110 2111
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2112
**参数:**
H
HelloCrease 已提交
2113 2114 2115 2116
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2117

Z
zhangxingxia 已提交
2118
**返回值:**
Z
zhangxingxia 已提交
2119
  | 类型                               | 说明        |
H
HelloCrease 已提交
2120
  | --------------------------------- | --------- |
H
haonan_7 已提交
2121
  | Promise&lt;[Stream](#stream7)&gt; | Promise对象。返回文件流的结果。 |
Z
zengyawen 已提交
2122

Z
zhangxingxia 已提交
2123
**示例:**
Z
zhangxingxia 已提交
2124 2125
  ```js
  fileio.fdopenStream(fd, mode).then(function(stream){
H
haonan_7 已提交
2126
      console.info("openStream succeed");
Z
zhangxingxia 已提交
2127 2128 2129
  }).catch(function(err){
      console.info("openStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2130 2131 2132 2133 2134 2135 2136
  ```


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

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

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

2139 2140
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2141
**参数:**
H
HelloCrease 已提交
2142 2143 2144 2145 2146
  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
2147

Z
zhangxingxia 已提交
2148
**示例:**
Z
zhangxingxia 已提交
2149 2150 2151
  ```js
  fileio.fdopenStream(fd, mode, function (err, stream) {
      // do something
Z
zengyawen 已提交
2152 2153 2154 2155 2156 2157 2158 2159 2160 2161
  });
  ```


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

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

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

2162 2163
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2164
**参数:**
H
HelloCrease 已提交
2165 2166 2167 2168
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2169

Z
zhangxingxia 已提交
2170
**返回值:**
Z
zhangxingxia 已提交
2171
  | 类型                | 说明        |
H
HelloCrease 已提交
2172
  | ------------------ | --------- |
Z
zengyawen 已提交
2173 2174
  | [Stream](#stream7) | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2175
**示例:**
Z
zhangxingxia 已提交
2176
  ```js
Z
zengyawen 已提交
2177 2178 2179 2180 2181 2182 2183 2184
  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 已提交
2185
基于文件描述符改变文件所有者,使用Promise异步回调。
Z
zengyawen 已提交
2186

2187 2188
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2189
**参数:**
H
HelloCrease 已提交
2190 2191 2192 2193 2194
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待改变文件的文件描述符。 |
  | uid  | number | 是    | 文件所有者的UID。   |
  | gid  | number | 是    | 文件所有组的GID。   |
Z
zengyawen 已提交
2195

Z
zhangxingxia 已提交
2196
**返回值:**
H
HelloCrease 已提交
2197 2198
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
2199
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
2200

Z
zhangxingxia 已提交
2201
**示例:**
Z
zhangxingxia 已提交
2202
  ```js
Z
zengyawen 已提交
2203
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2204
  fileio.fchown(fd, stat.uid, stat.gid).then(function() {
H
haonan_7 已提交
2205
      console.info("chown succeed");
Z
zhangxingxia 已提交
2206 2207
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
Z
zengyawen 已提交
2208 2209 2210 2211 2212 2213 2214 2215
  });
  ```


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

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

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

2218 2219
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2220
**参数:**
H
HelloCrease 已提交
2221 2222 2223 2224 2225 2226
  | 参数名      | 类型                        | 必填   | 说明              |
  | -------- | ------------------------- | ---- | --------------- |
  | fd       | number                    | 是    | 待改变文件的文件描述符。    |
  | uid      | number                    | 是    | 文件所有者的UID。      |
  | gid      | number                    | 是    | 文件所有组的GID。      |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
2227

Z
zhangxingxia 已提交
2228
**示例:**
Z
zhangxingxia 已提交
2229
  ```js
Z
zengyawen 已提交
2230 2231
  let stat = fileio.statSync(fpath);
  fileio.fchown(fd, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2232
      // do something
Z
zengyawen 已提交
2233 2234 2235 2236 2237 2238 2239 2240 2241 2242
  });
  ```


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

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

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

2243 2244
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2245
**参数:**
H
HelloCrease 已提交
2246 2247 2248 2249 2250
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待改变文件的文件描述符。 |
  | uid  | number | 是    | 文件所有者的UID。   |
  | gid  | number | 是    | 文件所有组的GID。   |
Z
zengyawen 已提交
2251

Z
zhangxingxia 已提交
2252
**示例:**
Z
zhangxingxia 已提交
2253
  ```js
Z
zengyawen 已提交
2254 2255 2256 2257 2258 2259 2260 2261 2262
  let stat = fileio.statSync(fpath);
  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 已提交
2263
基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是符号链接所指向的实际文件,使用Promise异步回调。
Z
zengyawen 已提交
2264

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

Z
zhangxingxia 已提交
2267
**参数:**
Z
zengyawen 已提交
2268 2269 2270 2271 2272
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待打开文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
2273

Z
zhangxingxia 已提交
2274
**返回值:**
H
HelloCrease 已提交
2275 2276
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
H
haonan_7 已提交
2277
  | Promise&lt;void&gt; | Promise对象。无返回值。 |
Z
zengyawen 已提交
2278

Z
zhangxingxia 已提交
2279
**示例:**
Z
zhangxingxia 已提交
2280
  ```js
Z
zengyawen 已提交
2281
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2282
  fileio.lchown(path, stat.uid, stat.gid).then(function() {
H
haonan_7 已提交
2283
      console.info("chown succeed");
Z
zhangxingxia 已提交
2284 2285 2286
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
2287 2288 2289 2290 2291 2292 2293
  ```


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

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

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

2296 2297
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2298
**参数:**
Z
zengyawen 已提交
2299 2300 2301 2302 2303 2304
| 参数名   | 类型                      | 必填 | 说明                           |
| -------- | ------------------------- | ---- | ------------------------------ |
| path     | string                    | 是   | 待打开文件的应用沙箱路径。     |
| uid      | number                    | 是   | 新的UID。                      |
| gid      | number                    | 是   | 新的GID。                      |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
2305

Z
zhangxingxia 已提交
2306
**示例:**
Z
zhangxingxia 已提交
2307
  ```js
Z
zengyawen 已提交
2308 2309
  let stat = fileio.statSync(path);
  fileio.lchown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2310
      // do something
Z
zengyawen 已提交
2311 2312 2313 2314 2315 2316 2317 2318 2319 2320
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
2323
**参数:**
Z
zengyawen 已提交
2324 2325 2326 2327 2328
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待打开文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
2329

Z
zhangxingxia 已提交
2330
**示例:**
Z
zhangxingxia 已提交
2331
  ```js
Z
zengyawen 已提交
2332 2333 2334 2335 2336 2337 2338 2339 2340
  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 已提交
2341
监听文件或者目录的变化,使用callback异步回调。
Z
zengyawen 已提交
2342

2343 2344
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2352
**返回值:**
Z
zhangxingxia 已提交
2353
  | 类型                  | 说明         |
H
HelloCrease 已提交
2354
  | -------------------- | ---------- |
H
haonan_7 已提交
2355
  | [Watcher](#watcher7) | Promise对象。返回文件变化监听的实例。 |
Z
zengyawen 已提交
2356

Z
zhangxingxia 已提交
2357
**示例:**
Z
zhangxingxia 已提交
2358 2359 2360
  ```js
  fileio.createWatcher(filename, events, function(watcher){
      // do something
Z
zengyawen 已提交
2361 2362 2363 2364 2365 2366 2367 2368
  });
  ```


## Readout

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

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

H
HelloCrease 已提交
2371 2372 2373 2374 2375
| 名称        | 参数类型       | 可读   | 可写   | 说明                |
| --------- | ---------- | ---- | ---- | ----------------- |
| bytesRead | number     | 是    | 是    | 实际读取长度。           |
| offset    | number     | 是    | 是    | 读取数据相对于缓冲区首地址的偏移。 |
| buffer    | ArrayBufer | 是    | 是    | 保存读取数据的缓冲区。       |
Z
zengyawen 已提交
2376 2377 2378 2379 2380


## Stat

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

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

Z
zengyawen 已提交
2384
### 属性
Z
zengyawen 已提交
2385

H
HelloCrease 已提交
2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399
| 名称     | 参数类型   | 可读   | 可写   | 说明                                       |
| ------ | ------ | ---- | ---- | ---------------------------------------- |
| 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 已提交
2400 2401


Z
zengyawen 已提交
2402
### isBlockDevice
Z
zengyawen 已提交
2403

Z
zengyawen 已提交
2404
isBlockDevice(): boolean
Z
zengyawen 已提交
2405

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

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

Z
zhangxingxia 已提交
2410
**返回值:**
H
HelloCrease 已提交
2411 2412
  | 类型      | 说明               |
  | ------- | ---------------- |
Z
zhangxingxia 已提交
2413
  | boolean | 表示文件是否是块特殊设备。 |
Z
zengyawen 已提交
2414

Z
zhangxingxia 已提交
2415
**示例:**
Z
zhangxingxia 已提交
2416
  ```js
Z
zengyawen 已提交
2417 2418
  let isBLockDevice = fileio.statSync(path).isBlockDevice();
  ```
Z
zengyawen 已提交
2419 2420


Z
zengyawen 已提交
2421
### isCharacterDevice
Z
zengyawen 已提交
2422

Z
zengyawen 已提交
2423
isCharacterDevice(): boolean
Z
zengyawen 已提交
2424

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

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

Z
zhangxingxia 已提交
2429
**返回值:**
H
HelloCrease 已提交
2430 2431
  | 类型      | 说明                |
  | ------- | ----------------- |
Z
zhangxingxia 已提交
2432
  | boolean | 表示文件是否是字符特殊设备。 |
Z
zengyawen 已提交
2433

Z
zhangxingxia 已提交
2434
**示例:**
Z
zhangxingxia 已提交
2435
  ```js
Z
zengyawen 已提交
2436 2437
  let isCharacterDevice = fileio.statSync(path).isCharacterDevice();
  ```
Z
zengyawen 已提交
2438 2439


Z
zengyawen 已提交
2440
### isDirectory
Z
zengyawen 已提交
2441

Z
zengyawen 已提交
2442
isDirectory(): boolean
Z
zengyawen 已提交
2443

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

2446 2447
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2448
**返回值:**
H
HelloCrease 已提交
2449 2450
  | 类型      | 说明            |
  | ------- | ------------- |
Z
zhangxingxia 已提交
2451
  | boolean | 表示文件是否是目录。 |
Z
zengyawen 已提交
2452

Z
zhangxingxia 已提交
2453
**示例:**
Z
zhangxingxia 已提交
2454
  ```js
Z
zengyawen 已提交
2455
  let isDirectory = fileio.statSync(path).isDirectory(); 
Z
zengyawen 已提交
2456
  ```
Z
zengyawen 已提交
2457 2458


Z
zengyawen 已提交
2459
### isFIFO
Z
zengyawen 已提交
2460

Z
zengyawen 已提交
2461
isFIFO(): boolean
Z
zengyawen 已提交
2462

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

2465 2466
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2467
**返回值:**
H
HelloCrease 已提交
2468 2469
  | 类型      | 说明                    |
  | ------- | --------------------- |
Z
zhangxingxia 已提交
2470
  | boolean | 表示文件是否是&nbsp;FIFO。 |
Z
zengyawen 已提交
2471

Z
zhangxingxia 已提交
2472
**示例:**
Z
zhangxingxia 已提交
2473
  ```js
Z
zengyawen 已提交
2474
  let isFIFO = fileio.statSync(path).isFIFO(); 
Z
zengyawen 已提交
2475
  ```
Z
zengyawen 已提交
2476 2477


Z
zengyawen 已提交
2478
### isFile
Z
zengyawen 已提交
2479

Z
zengyawen 已提交
2480
isFile(): boolean
Z
zengyawen 已提交
2481

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

2484 2485
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2486
**返回值:**
H
HelloCrease 已提交
2487 2488
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
2489
  | boolean | 表示文件是否是普通文件。 |
Z
zengyawen 已提交
2490

Z
zhangxingxia 已提交
2491
**示例:**
Z
zhangxingxia 已提交
2492
  ```js
Z
zengyawen 已提交
2493
  let isFile = fileio.statSync(fpath).isFile();
Z
zengyawen 已提交
2494
  ```
Z
zengyawen 已提交
2495 2496


Z
zengyawen 已提交
2497
### isSocket
Z
zengyawen 已提交
2498

Z
zengyawen 已提交
2499
isSocket(): boolean
Z
zengyawen 已提交
2500

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

2503 2504
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2505
**返回值:**
H
HelloCrease 已提交
2506 2507
  | 类型      | 说明             |
  | ------- | -------------- |
Z
zhangxingxia 已提交
2508
  | boolean | 表示文件是否是套接字。 |
Z
zengyawen 已提交
2509

Z
zhangxingxia 已提交
2510
**示例:**
Z
zhangxingxia 已提交
2511
  ```js
Z
zengyawen 已提交
2512 2513
  let isSocket = fileio.statSync(path).isSocket(); 
  ```
Z
zengyawen 已提交
2514 2515


Z
zengyawen 已提交
2516
### isSymbolicLink
Z
zengyawen 已提交
2517

Z
zengyawen 已提交
2518
isSymbolicLink(): boolean
Z
zengyawen 已提交
2519

Z
zhangxingxia 已提交
2520
用于判断文件是否是符号链接。
Z
zengyawen 已提交
2521

2522 2523
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2524
**返回值:**
H
HelloCrease 已提交
2525 2526
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
2527
  | boolean | 表示文件是否是符号链接。 |
Z
zengyawen 已提交
2528

Z
zhangxingxia 已提交
2529
**示例:**
Z
zhangxingxia 已提交
2530
  ```js
Z
zengyawen 已提交
2531 2532
  let isSymbolicLink = fileio.statSync(path).isSymbolicLink(); 
  ```
Z
zengyawen 已提交
2533 2534


Z
zengyawen 已提交
2535 2536 2537 2538 2539 2540 2541
## Watcher<sup>7+</sup>

Watcher是文件变化监听的实例,调用Watcher.stop()方法(同步或异步)来停止文件监听。


### stop<sup>7+</sup>

2542
stop(): Promise&lt;void&gt;
Z
zengyawen 已提交
2543

H
haonan_7 已提交
2544
关闭watcher监听,使用Promise异步回调。
Z
zengyawen 已提交
2545

2546 2547
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2548
**示例:**
Z
zhangxingxia 已提交
2549
  ```js
Z
zengyawen 已提交
2550 2551 2552 2553 2554 2555
  fileio.stop();
  ```


### stop<sup>7+</sup>

2556
stop(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
2557

H
haonan_7 已提交
2558
关闭watcher监听,使用callback异步回调。
Z
zengyawen 已提交
2559

2560 2561
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2562
**参数:**
H
HelloCrease 已提交
2563 2564 2565
  | 参数名      | 类型                        | 必填   | 说明                     |
  | -------- | ------------------------- | ---- | ---------------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 以异步方法关闭watcher监听之后的回调。 |
Z
zengyawen 已提交
2566

Z
zhangxingxia 已提交
2567
**示例:**
Z
zhangxingxia 已提交
2568
  ```js
Z
zengyawen 已提交
2569
  fileio.stop(function(err){
Z
zhangxingxia 已提交
2570
      // do something
Z
zengyawen 已提交
2571 2572 2573 2574
  });
  ```


Z
zengyawen 已提交
2575
## Stream<sup>7+</sup>
Z
zengyawen 已提交
2576

Z
zengyawen 已提交
2577 2578 2579 2580 2581 2582 2583
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。


### close<sup>7+</sup>

close(): Promise&lt;void&gt;

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

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

Z
zhangxingxia 已提交
2588
**返回值:**
H
HelloCrease 已提交
2589 2590
  | 类型                  | 说明            |
  | ------------------- | ------------- |
H
haonan_7 已提交
2591
  | Promise&lt;void&gt; | Promise对象。返回表示异步关闭文件流的结果。 |
Z
zengyawen 已提交
2592

Z
zhangxingxia 已提交
2593
**示例:**
Z
zhangxingxia 已提交
2594
  ```js
Z
zengyawen 已提交
2595
  let ss= fileio.createStreamSync(path);
Z
zhangxingxia 已提交
2596
  ss.close().then(function(){
H
haonan_7 已提交
2597
      console.info("close fileStream succeed");
Z
zhangxingxia 已提交
2598 2599 2600
  }).catch(function(err){
      console.info("close fileStream  failed with error:"+ err);
  });
Z
zengyawen 已提交
2601 2602 2603 2604 2605 2606 2607
  ```


### close<sup>7+</sup>

close(callback: AsyncCallback&lt;void&gt;): void

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

2610 2611
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2612
**参数:**
H
HelloCrease 已提交
2613 2614 2615
  | 参数名      | 类型                        | 必填   | 说明            |
  | -------- | ------------------------- | ---- | ------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件流之后的回调。 |
Z
zengyawen 已提交
2616

Z
zhangxingxia 已提交
2617
**示例:**
Z
zhangxingxia 已提交
2618
  ```js
Z
zengyawen 已提交
2619 2620
  let ss= fileio.createStreamSync(path);
  ss.close(function (err) {
Z
zhangxingxia 已提交
2621
      // do something
Z
zengyawen 已提交
2622 2623
  });
  ```
Z
zengyawen 已提交
2624 2625


2626
### closeSync
Z
zengyawen 已提交
2627

Z
zengyawen 已提交
2628
closeSync(): void
Z
zengyawen 已提交
2629

Z
zengyawen 已提交
2630
同步关闭文件流。
Z
zengyawen 已提交
2631

2632 2633
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2634
**示例:**
Z
zhangxingxia 已提交
2635
  ```js
Z
zengyawen 已提交
2636 2637 2638
  let ss= fileio.createStreamSync(path);
  ss.closeSync();
  ```
Z
zengyawen 已提交
2639 2640


Z
zengyawen 已提交
2641 2642 2643 2644
### flush<sup>7+</sup>

flush(): Promise&lt;void&gt;

H
haonan_7 已提交
2645
刷新文件流,使用Promise异步回调。
Z
zengyawen 已提交
2646

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

Z
zhangxingxia 已提交
2649
**返回值:**
H
HelloCrease 已提交
2650 2651
  | 类型                  | 说明            |
  | ------------------- | ------------- |
H
haonan_7 已提交
2652
  | Promise&lt;void&gt; | Promise对象。返回表示异步刷新文件流的结果。 |
Z
zengyawen 已提交
2653

Z
zhangxingxia 已提交
2654
**示例:**
Z
zhangxingxia 已提交
2655
  ```js
Z
zengyawen 已提交
2656
  let ss= fileio.createStreamSync(path);
Z
zhangxingxia 已提交
2657
  ss.flush().then(function (){
H
haonan_7 已提交
2658
      console.info("flush succeed");
Z
zhangxingxia 已提交
2659 2660 2661
  }).catch(function(err){
      console.info("flush failed with error:"+ err);
  });
Z
zengyawen 已提交
2662 2663 2664 2665 2666 2667 2668
  ```


### flush<sup>7+</sup>

flush(callback: AsyncCallback&lt;void&gt;): void

H
haonan_7 已提交
2669
异步刷新文件流,使用callback异步回调。
Z
zengyawen 已提交
2670

2671 2672
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2673
**参数:**
H
HelloCrease 已提交
2674 2675 2676
  | 参数名      | 类型                        | 必填   | 说明             |
  | -------- | ------------------------- | ---- | -------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步刷新文件流后的回调函数。 |
Z
zengyawen 已提交
2677

Z
zhangxingxia 已提交
2678
**示例:**
Z
zhangxingxia 已提交
2679
  ```js
Z
zengyawen 已提交
2680 2681
  let ss= fileio.createStreamSync(path);
  ss.flush(function (err) {
Z
zhangxingxia 已提交
2682
      // do something
Z
zengyawen 已提交
2683 2684 2685 2686
  });
  ```


Z
zengyawen 已提交
2687
### flushSync<sup>7+</sup>
Z
zengyawen 已提交
2688

Z
zengyawen 已提交
2689
flushSync(): void
Z
zengyawen 已提交
2690

Z
zengyawen 已提交
2691
同步刷新文件流。
Z
zengyawen 已提交
2692

2693 2694
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2695
**示例:**
Z
zhangxingxia 已提交
2696
  ```js
Z
zengyawen 已提交
2697 2698 2699
  let ss= fileio.createStreamSync(path);
  ss.flushSync();
  ```
Z
zengyawen 已提交
2700 2701


Z
zengyawen 已提交
2702 2703
### write<sup>7+</sup>

2704 2705 2706 2707 2708 2709
write(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
2710

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

2713 2714
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2715
**参数:**
H
HelloCrease 已提交
2716 2717 2718
  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
2719
  | 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 已提交
2720

Z
zhangxingxia 已提交
2721
**返回值:**
H
HelloCrease 已提交
2722 2723
  | 类型                    | 说明       |
  | --------------------- | -------- |
H
haonan_7 已提交
2724
  | Promise&lt;number&gt; | Promise对象。返回实际写入的长度。 |
Z
zengyawen 已提交
2725

Z
zhangxingxia 已提交
2726
**示例:**
Z
zhangxingxia 已提交
2727
  ```js
Z
zengyawen 已提交
2728
  let ss= fileio.createStreamSync(fpath, "r+");
Z
zhangxingxia 已提交
2729
  ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
H
haonan_7 已提交
2730
      console.info("write succeed and size is:"+ number);
Z
zhangxingxia 已提交
2731 2732 2733
  }).catch(function(err){
      console.info("write failed with error:"+ err);
  });
Z
zengyawen 已提交
2734 2735 2736 2737 2738
  ```


### write<sup>7+</sup>

2739 2740 2741 2742 2743 2744
write(buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
2745

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

2748 2749
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2750
**参数:**
Z
update  
zhangxingxia 已提交
2751 2752 2753
  | 参数名   | 类型                            | 必填 | 说明                                                         |
  | -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
  | buffer   | ArrayBuffer&nbsp;\|&nbsp;string | 是   | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
2754
  | 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
update  
zhangxingxia 已提交
2755
  | callback | AsyncCallback&lt;number&gt;     | 是   | 异步写入完成后执行的回调函数。                               |
Z
zengyawen 已提交
2756

Z
zhangxingxia 已提交
2757
**示例:**
Z
zhangxingxia 已提交
2758
  ```js
Z
zengyawen 已提交
2759 2760
  let ss= fileio.createStreamSync(fpath, "r+");
  ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
Z
zhangxingxia 已提交
2761
      if (bytesWritten) {
Z
zhangxingxia 已提交
2762
         // do something
H
haonan_7 已提交
2763
         console.info("write succeed and size is:"+ bytesWritten);
Z
zengyawen 已提交
2764 2765 2766 2767 2768
      }
  });
  ```


Z
zengyawen 已提交
2769
### writeSync<sup>7+</sup>
Z
zengyawen 已提交
2770

2771 2772 2773 2774 2775 2776
writeSync(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
2777

Z
zengyawen 已提交
2778
以同步方法将数据写入流文件。
Z
zengyawen 已提交
2779

2780 2781
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2782
**参数:**
H
HelloCrease 已提交
2783 2784 2785
  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
2786
  | 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 已提交
2787

Z
zhangxingxia 已提交
2788
**返回值:**
H
HelloCrease 已提交
2789 2790
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
2791
  | number | 实际写入的长度。 |
Z
zengyawen 已提交
2792

Z
zhangxingxia 已提交
2793
**示例:**
Z
zhangxingxia 已提交
2794
  ```js
Z
zengyawen 已提交
2795
  let ss= fileio.createStreamSync(fpath,"r+");
Z
zengyawen 已提交
2796 2797 2798 2799 2800 2801
  let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});
  ```


### read<sup>7+</sup>

2802 2803 2804 2805 2806
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
2807

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

2810 2811
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2818
**返回值:**
H
HelloCrease 已提交
2819 2820
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
H
haonan_7 已提交
2821
  | Promise&lt;[ReadOut](#readout)&gt; | Promise对象。返回读取的结果。 |
Z
zengyawen 已提交
2822

Z
zhangxingxia 已提交
2823
**示例:**
Z
zhangxingxia 已提交
2824
  ```js
Z
zengyawen 已提交
2825
  let ss = fileio.createStreamSync(fpath, "r+");
Z
zhangxingxia 已提交
2826
  ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readout){
H
haonan_7 已提交
2827
      console.info("read data succeed");
Z
zhangxingxia 已提交
2828
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
2829 2830 2831
  }).catch(function(err){
      console.info("read data failed with error:"+ err);
  });
Z
zengyawen 已提交
2832 2833 2834 2835 2836
  ```


### read<sup>7+</sup>

2837 2838 2839 2840 2841
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
2842

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

2845 2846
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2854
**示例:**
Z
zhangxingxia 已提交
2855
  ```js
Z
zengyawen 已提交
2856 2857
  let ss = fileio.createStreamSync(fpath, "r+");
  ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
Z
zhangxingxia 已提交
2858
      if (readOut) {
H
haonan_7 已提交
2859
          console.info("read data succeed");
Z
zhangxingxia 已提交
2860
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
2861 2862
      }
  });
Z
zengyawen 已提交
2863
  ```
Z
zengyawen 已提交
2864 2865


Z
zengyawen 已提交
2866
### readSync<sup>7+</sup>
Z
zengyawen 已提交
2867

2868 2869 2870 2871 2872
readSync(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): number
Z
zengyawen 已提交
2873 2874 2875

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

2876 2877
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2878
**参数:**
Z
zhangxingxia 已提交
2879

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

Z
zhangxingxia 已提交
2885
**返回值:**
Z
zhangxingxia 已提交
2886

H
HelloCrease 已提交
2887 2888
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
2889
  | number | 实际读取的长度。 |
Z
zhangxingxia 已提交
2890

Z
zhangxingxia 已提交
2891
**示例:**
Z
zhangxingxia 已提交
2892
  ```js
Z
zengyawen 已提交
2893
  let ss = fileio.createStreamSync(fpath, "r+");
Z
zengyawen 已提交
2894
  let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});
Z
zengyawen 已提交
2895
  ```
Z
zengyawen 已提交
2896 2897


Z
zengyawen 已提交
2898
## Dir
Z
zengyawen 已提交
2899

Z
zengyawen 已提交
2900 2901 2902 2903 2904 2905 2906
管理目录,在调用Dir的方法前,需要先通过[opendir()](#fileioopendir)方法(同步或异步)来构建一个Dir实例。


### read

read(): Promise&lt;Dirent&gt;

H
haonan_7 已提交
2907
读取下一个目录项,使用Promise异步回调。
Z
zengyawen 已提交
2908

2909 2910
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2911
**返回值:**
H
HelloCrease 已提交
2912 2913
  | 类型                               | 说明            |
  | -------------------------------- | ------------- |
H
haonan_7 已提交
2914
  | Promise&lt;[Dirent](#dirent)&gt; | Promise对象。返回表示异步读取目录项的结果。 |
Z
zengyawen 已提交
2915

Z
zhangxingxia 已提交
2916
**示例:**
Z
zhangxingxia 已提交
2917
  ```js
H
HelloCrease 已提交
2918
  let dir = fileio.opendirSync(path);
Z
zhangxingxia 已提交
2919
  dir.read().then(function (dirent){
H
haonan_7 已提交
2920
      console.log("read succeed:"+JSON.stringify(dirent));
Z
zhangxingxia 已提交
2921 2922 2923
  }).catch(function(err){
      console.info("read failed with error:"+ err);
  });
Z
zengyawen 已提交
2924 2925 2926 2927 2928 2929 2930
  ```


### read

read(callback: AsyncCallback&lt;Dirent&gt;): void

H
haonan_7 已提交
2931
读取下一个目录项,使用callback异步回调。
Z
zengyawen 已提交
2932

2933 2934
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2935
**参数:**
H
HelloCrease 已提交
2936 2937 2938
  | 参数名      | 类型                                     | 必填   | 说明               |
  | -------- | -------------------------------------- | ---- | ---------------- |
  | callback | AsyncCallback&lt;[Dirent](#dirent)&gt; | 是    | 异步读取下一个目录项之后的回调。 |
Z
zengyawen 已提交
2939

Z
zhangxingxia 已提交
2940
**示例:**
Z
zhangxingxia 已提交
2941
  ```js
H
HelloCrease 已提交
2942
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2943
  dir.read(function (err, dirent) {
Z
zhangxingxia 已提交
2944
      if (dirent) {
Z
zhangxingxia 已提交
2945
          // do something
H
haonan_7 已提交
2946
          console.log("read succeed:"+JSON.stringify(dirent));
Z
zengyawen 已提交
2947 2948 2949
      }
  });
  ```
Z
zengyawen 已提交
2950 2951


Z
zengyawen 已提交
2952
### readSync
Z
zengyawen 已提交
2953

Z
zengyawen 已提交
2954
readSync(): Dirent
Z
zengyawen 已提交
2955

Z
zengyawen 已提交
2956
同步读取下一个目录项。
Z
zengyawen 已提交
2957

2958 2959
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2960
**返回值:**
H
HelloCrease 已提交
2961 2962
  | 类型                | 说明       |
  | ----------------- | -------- |
Z
zengyawen 已提交
2963
  | [Dirent](#dirent) | 表示一个目录项。 |
Z
zengyawen 已提交
2964

Z
zhangxingxia 已提交
2965
**示例:**
Z
zhangxingxia 已提交
2966
  ```js
H
HelloCrease 已提交
2967
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2968 2969
  let dirent = dir.readSync();
  ```
Z
zengyawen 已提交
2970 2971


Z
zengyawen 已提交
2972
### closeSync
Z
zengyawen 已提交
2973

Z
zengyawen 已提交
2974
closeSync(): void
Z
zengyawen 已提交
2975

Z
zengyawen 已提交
2976
用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
Z
zengyawen 已提交
2977

2978 2979
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2980
**示例:**
Z
zhangxingxia 已提交
2981
  ```js
H
HelloCrease 已提交
2982
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2983 2984
  dir.closeSync();
  ```
Z
zengyawen 已提交
2985 2986


Z
zengyawen 已提交
2987
## Dirent
Z
zengyawen 已提交
2988

Z
zengyawen 已提交
2989
在调用Dirent的方法前,需要先通过[dir.read()](#read)方法(同步或异步)来构建一个Dirent实例。
Z
zengyawen 已提交
2990

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

Z
zengyawen 已提交
2993
### 属性
Z
zengyawen 已提交
2994

H
HelloCrease 已提交
2995 2996 2997
| 名称   | 参数类型   | 可读   | 可写   | 说明      |
| ---- | ------ | ---- | ---- | ------- |
| name | string | 是    | 否    | 目录项的名称。 |
Z
zengyawen 已提交
2998 2999


Z
zengyawen 已提交
3000
### isBlockDevice
Z
zengyawen 已提交
3001

Z
zengyawen 已提交
3002
isBlockDevice(): boolean
Z
zengyawen 已提交
3003

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

3006 3007
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3008
**返回值:**
H
HelloCrease 已提交
3009 3010
  | 类型      | 说明               |
  | ------- | ---------------- |
Z
zhangxingxia 已提交
3011
  | boolean | 表示当前目录项是否是块特殊设备。 |
Z
zengyawen 已提交
3012

Z
zhangxingxia 已提交
3013
**示例:**
Z
zhangxingxia 已提交
3014
  ```js
H
HelloCrease 已提交
3015
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3016 3017
  let isBLockDevice = dir.readSync().isBlockDevice();
  ```
Z
zengyawen 已提交
3018 3019


Z
zengyawen 已提交
3020
### isCharacterDevice
Z
zengyawen 已提交
3021

Z
zengyawen 已提交
3022
isCharacterDevice(): boolean
Z
zengyawen 已提交
3023

Z
zhangxingxia 已提交
3024
用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
Z
zengyawen 已提交
3025

3026 3027
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3028
**返回值:**
H
HelloCrease 已提交
3029 3030
  | 类型      | 说明                |
  | ------- | ----------------- |
Z
zhangxingxia 已提交
3031
  | boolean | 表示当前目录项是否是字符特殊设备。 |
Z
zengyawen 已提交
3032

Z
zhangxingxia 已提交
3033
**示例:**
Z
zhangxingxia 已提交
3034
  ```js
H
HelloCrease 已提交
3035
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3036 3037
  let isCharacterDevice = dir.readSync().isCharacterDevice(); 
  ```
Z
zengyawen 已提交
3038 3039


Z
zengyawen 已提交
3040
### isDirectory
Z
zengyawen 已提交
3041

Z
zengyawen 已提交
3042
isDirectory(): boolean
Z
zengyawen 已提交
3043

Z
zhangxingxia 已提交
3044
用于判断当前目录项是否是目录。
Z
zengyawen 已提交
3045

3046 3047
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3048
**返回值:**
H
HelloCrease 已提交
3049 3050
  | 类型      | 说明            |
  | ------- | ------------- |
Z
zhangxingxia 已提交
3051
  | boolean | 表示当前目录项是否是目录。 |
Z
zengyawen 已提交
3052

Z
zhangxingxia 已提交
3053
**示例:**
Z
zhangxingxia 已提交
3054
  ```js
H
HelloCrease 已提交
3055
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3056 3057
  let isDirectory = dir.readSync().isDirectory(); 
  ```
Z
zengyawen 已提交
3058 3059


Z
zengyawen 已提交
3060
### isFIFO
Z
zengyawen 已提交
3061

Z
zengyawen 已提交
3062
isFIFO(): boolean
Z
zengyawen 已提交
3063

Z
zhangxingxia 已提交
3064
用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
3065

3066 3067
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3068
**返回值:**
H
HelloCrease 已提交
3069 3070
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
3071
  | boolean | 表示当前目录项是否是FIFO。 |
Z
zengyawen 已提交
3072

Z
zhangxingxia 已提交
3073
**示例:**
Z
zhangxingxia 已提交
3074
  ```js
H
HelloCrease 已提交
3075
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3076 3077
  let isFIFO = dir.readSync().isFIFO(); 
  ```
Z
zengyawen 已提交
3078 3079


Z
zengyawen 已提交
3080
### isFile
Z
zengyawen 已提交
3081

Z
zengyawen 已提交
3082
isFile(): boolean
Z
zengyawen 已提交
3083

Z
zhangxingxia 已提交
3084
用于判断当前目录项是否是普通文件。
Z
zengyawen 已提交
3085

3086 3087
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3088
**返回值:**
H
HelloCrease 已提交
3089 3090
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
3091
  | boolean | 表示当前目录项是否是普通文件。 |
Z
zengyawen 已提交
3092

Z
zhangxingxia 已提交
3093
**示例:**
Z
zhangxingxia 已提交
3094
  ```js
H
HelloCrease 已提交
3095
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3096 3097
  let isFile = dir.readSync().isFile(); 
  ```
Z
zengyawen 已提交
3098 3099


Z
zengyawen 已提交
3100
### isSocket
Z
zengyawen 已提交
3101

Z
zengyawen 已提交
3102
isSocket(): boolean
Z
zengyawen 已提交
3103

Z
zhangxingxia 已提交
3104
用于判断当前目录项是否是套接字。
Z
zengyawen 已提交
3105

3106 3107
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3108
**返回值:**
H
HelloCrease 已提交
3109 3110
  | 类型      | 说明             |
  | ------- | -------------- |
Z
zhangxingxia 已提交
3111
  | boolean | 表示当前目录项是否是套接字。 |
Z
zengyawen 已提交
3112

Z
zhangxingxia 已提交
3113
**示例:**
Z
zhangxingxia 已提交
3114
  ```js
Z
zengyawen 已提交
3115 3116 3117
  let dir = fileio.opendirSync(dpath);
  let isSocket = dir.readSync().isSocket(); 
  ```
Z
zengyawen 已提交
3118 3119


Z
zengyawen 已提交
3120
### isSymbolicLink
Z
zengyawen 已提交
3121

Z
zengyawen 已提交
3122
isSymbolicLink(): boolean
Z
zengyawen 已提交
3123

Z
zhangxingxia 已提交
3124
用于判断当前目录项是否是符号链接。
Z
zengyawen 已提交
3125

3126 3127
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3128
**返回值:**
H
HelloCrease 已提交
3129 3130
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
3131
  | boolean | 表示当前目录项是否是符号链接。 |
Z
zengyawen 已提交
3132

Z
zhangxingxia 已提交
3133
**示例:**
Z
zhangxingxia 已提交
3134
  ```js
H
HelloCrease 已提交
3135
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3136 3137
  let isSymbolicLink = dir.readSync().isSymbolicLink();
  ```