js-apis-fileio.md 125.9 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

Z
zengyawen 已提交
6
## 导入模块
Z
zengyawen 已提交
7

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

Z
zengyawen 已提交
12 13

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

Z
zengyawen 已提交
15
使用该功能模块对文件/目录进行操作前,需要先获取其绝对路径,获取方式及其接口用法请参考:[Context模块的接口getOrCreateLocalDir](js-apis-Context.md)
Z
zengyawen 已提交
16 17

“文件/目录绝对路径”=“应用目录路径”+“文件/目录名”
Z
zengyawen 已提交
18 19 20

通过上述接口获取到应用目录路径dir,文件名为“xxx.txt”,文件所在绝对路径为:

Z
zhangxingxia 已提交
21
```js
Z
zengyawen 已提交
22
let path = dir + "/xxx.txt";
Z
zengyawen 已提交
23 24
```

Z
zengyawen 已提交
25

Z
zengyawen 已提交
26 27
文件描述符fd:

Z
zengyawen 已提交
28

Z
zhangxingxia 已提交
29
```js
Z
zengyawen 已提交
30 31 32 33
let fd = fileio.openSync(path);
```


Z
zengyawen 已提交
34 35 36 37 38 39
## fileio.stat

stat(path: string): Promise<Stat>

以异步方法获取文件信息,使用promise形式返回结果。

40 41
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
42
**参数:**
Z
zhangxingxia 已提交
43

H
HelloCrease 已提交
44 45 46
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待获取文件的绝对路径。 |
Z
zhangxingxia 已提交
47

Z
zhangxingxia 已提交
48
**返回值:**
Z
zhangxingxia 已提交
49

H
HelloCrease 已提交
50 51
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
Z
zengyawen 已提交
52
  | Promise<[Stat](#stat)> | 表示文件的具体信息。 |
Z
zhangxingxia 已提交
53

Z
zhangxingxia 已提交
54
**示例:**
Z
zhangxingxia 已提交
55 56 57 58 59 60
  ```js
  fileio.stat(path).then(function(stat){
      console.info("getFileInfo successfully:"+ JSON.stringify(stat));
  }).catch(function(err){
      console.info("getFileInfo failed with error:"+ err);
  });
Z
zengyawen 已提交
61 62 63 64 65 66 67 68 69
  ```


## fileio.stat

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

以异步方法获取文件信息,使用callback形式返回结果。

70 71
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
72
**参数:**
H
HelloCrease 已提交
73 74 75 76
  | 参数名      | 类型                                 | 必填   | 说明              |
  | -------- | ---------------------------------- | ---- | --------------- |
  | path     | string                             | 是    | 待获取文件的绝对路径。     |
  | callback | AsyncCallback<[Stat](#stat)> | 是    | 异步获取文件的信息之后的回调。 |
Z
zengyawen 已提交
77

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


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

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

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

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

Z
zhangxingxia 已提交
94
**参数:**
H
HelloCrease 已提交
95 96 97
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待获取文件的绝对路径。 |
Z
zengyawen 已提交
98 99


Z
zhangxingxia 已提交
100
**返回值:**
H
HelloCrease 已提交
101 102
  | 类型            | 说明         |
  | ------------- | ---------- |
Z
zengyawen 已提交
103 104
  | [Stat](#stat) | 表示文件的具体信息。 |

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


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

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

Z
zengyawen 已提交
116
以异步方法打开文件目录,使用promise形式返回结果。
Z
zengyawen 已提交
117

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

Z
zhangxingxia 已提交
120
**参数:**
H
HelloCrease 已提交
121 122 123
  | 参数名  | 类型     | 必填   | 说明            |
  | ---- | ------ | ---- | ------------- |
  | path | string | 是    | 待打开文件目录的绝对路径。 |
Z
zengyawen 已提交
124

Z
zhangxingxia 已提交
125
**返回值:**
H
HelloCrease 已提交
126 127
  | 类型                         | 说明       |
  | -------------------------- | -------- |
Z
zengyawen 已提交
128
  | Promise<[Dir](#dir)> | 返回Dir对象。 |
Z
zengyawen 已提交
129

Z
zhangxingxia 已提交
130
**示例:**
Z
zhangxingxia 已提交
131 132 133 134 135 136
  ```js
  fileio.opendir(path).then(function(dir){
      console.info("opendir successfully:"+ JSON.stringify(dir));
  }).catch(function(err){
      console.info("opendir failed with error:"+ err);
  });
Z
zengyawen 已提交
137 138 139
  ```


Z
zengyawen 已提交
140
## fileio.opendir
Z
zengyawen 已提交
141

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

Z
zengyawen 已提交
144
以异步方法打开文件目录,使用callback形式返回结果。
Z
zengyawen 已提交
145

146 147
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
148
**参数:**
Z
zhangxingxia 已提交
149

H
HelloCrease 已提交
150 151 152 153
  | 参数名      | 类型                               | 必填   | 说明             |
  | -------- | -------------------------------- | ---- | -------------- |
  | path     | string                           | 是    | 待打开文件目录的绝对路径。  |
  | callback | AsyncCallback<[Dir](#dir)> | 是    | 异步打开文件目录之后的回调。 |
Z
zhangxingxia 已提交
154

Z
zhangxingxia 已提交
155
**示例:**
Z
zhangxingxia 已提交
156
  ```js
Z
zengyawen 已提交
157
  fileio.opendir(path, function (err, dir) { 
Z
zhangxingxia 已提交
158 159
      // example code in Dir struct
      // use read/readSync/close
Z
zengyawen 已提交
160
  });
Z
zengyawen 已提交
161 162 163
  ```


Z
zengyawen 已提交
164
## fileio.opendirSync
Z
zengyawen 已提交
165

Z
zengyawen 已提交
166 167 168
opendirSync(path: string): Dir

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

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

Z
zengyawen 已提交
172

Z
zhangxingxia 已提交
173
**参数:**
Z
zhangxingxia 已提交
174

H
HelloCrease 已提交
175 176 177
  | 参数名  | 类型     | 必填   | 说明            |
  | ---- | ------ | ---- | ------------- |
  | path | string | 是    | 待打开文件目录的绝对路径。 |
Z
zhangxingxia 已提交
178

Z
zhangxingxia 已提交
179
**返回值:**
H
HelloCrease 已提交
180 181
  | 类型          | 说明       |
  | ----------- | -------- |
Z
zengyawen 已提交
182
  | [Dir](#dir) | 返回Dir对象。 |
Z
zengyawen 已提交
183

Z
zhangxingxia 已提交
184
**示例:**
Z
zhangxingxia 已提交
185
  ```js
Z
zengyawen 已提交
186 187 188
  let dir = fileio.opendirSync(path);
  // example code in Dir struct
  // use read/readSync/close
Z
zengyawen 已提交
189 190 191
  ```


Z
zengyawen 已提交
192
## fileio.access
Z
zengyawen 已提交
193

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

Z
zengyawen 已提交
196
以异步方法检查当前进程是否可访问某文件,使用promise形式返回结果。
Z
zengyawen 已提交
197

198 199
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
200
**参数:**
Z
zhangxingxia 已提交
201

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

Z
zhangxingxia 已提交
207
**返回值:**
H
HelloCrease 已提交
208 209
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
210
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
211

Z
zhangxingxia 已提交
212
**示例:**
Z
zhangxingxia 已提交
213 214 215 216 217
  ```js
  fileio.access(path).then(function() {
      console.info("access successfully");
  }).catch(function(err){
      console.info("access failed with error:"+ err);
Z
zengyawen 已提交
218
  });
Z
zengyawen 已提交
219 220 221
  ```


Z
zengyawen 已提交
222
## fileio.access
Z
zengyawen 已提交
223

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

Z
zengyawen 已提交
226
以异步方法检查当前进程是否可访问某文件,使用callback形式返回结果。
Z
zengyawen 已提交
227

228 229
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
230
**参数:**
H
HelloCrease 已提交
231 232 233 234 235
  | 参数名      | 类型                        | 必填   | 说明                                       |
  | -------- | ------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
236

Z
zhangxingxia 已提交
237
**示例:**
Z
zhangxingxia 已提交
238
  ```js
Z
zengyawen 已提交
239
  fileio.access(path, function (err) {
Z
zhangxingxia 已提交
240
      // do something
Z
zengyawen 已提交
241
  });
Z
zengyawen 已提交
242 243 244
  ```


Z
zengyawen 已提交
245
## fileio.accessSync
Z
zengyawen 已提交
246

Z
zengyawen 已提交
247 248 249
accessSync(path: string, mode?: number): void

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

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

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

Z
zhangxingxia 已提交
259
**示例:**
Z
zhangxingxia 已提交
260
  ```js
Z
zengyawen 已提交
261 262
  try {
      fileio.accessSync(path);
Z
zhangxingxia 已提交
263 264
  } catch(err) {
      console.info("accessSync failed with error:"+ err);
Z
zengyawen 已提交
265
  }
Z
zengyawen 已提交
266 267 268
  ```


Z
zengyawen 已提交
269
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
270

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

Z
zengyawen 已提交
273
以异步方法关闭文件,使用promise形式返回结果。
Z
zengyawen 已提交
274

275 276
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
277
**参数:**
H
HelloCrease 已提交
278 279 280
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待关闭文件的文件描述符。 |
Z
zengyawen 已提交
281

Z
zhangxingxia 已提交
282
**返回值:**
H
HelloCrease 已提交
283 284
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
285
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
286

Z
zhangxingxia 已提交
287
**示例:**
Z
zhangxingxia 已提交
288
  ```js
Z
zengyawen 已提交
289
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
290 291 292 293 294
  fileio.close(fd).then(function(){
      console.info("close file successfully");
  }).catch(function(err){
      console.info("close file failed with error:"+ err);
  });
Z
zengyawen 已提交
295 296 297
  ```


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

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

Z
zengyawen 已提交
302
以异步方法关闭文件,使用callback形式返回结果。
Z
zengyawen 已提交
303

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

Z
zhangxingxia 已提交
306
**参数:**
H
HelloCrease 已提交
307 308 309 310
  | 参数名      | 类型                        | 必填   | 说明           |
  | -------- | ------------------------- | ---- | ------------ |
  | fd       | number                    | 是    | 待关闭文件的文件描述符。 |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件之后的回调。 |
Z
zengyawen 已提交
311

Z
zhangxingxia 已提交
312
**示例:**
Z
zhangxingxia 已提交
313
  ```js
Z
zengyawen 已提交
314
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
315 316
  fileio.close(fd, function (err) {
      // do something
Z
zengyawen 已提交
317
  });
Z
zengyawen 已提交
318 319 320
  ```


Z
zengyawen 已提交
321
## fileio.closeSync
Z
zengyawen 已提交
322

Z
zengyawen 已提交
323
closeSync(fd: number): void
Z
zengyawen 已提交
324

Z
zengyawen 已提交
325
以同步方法关闭文件。
Z
zengyawen 已提交
326

327 328
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
329
**参数:**
H
HelloCrease 已提交
330 331 332
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待关闭文件的文件描述符。 |
Z
zengyawen 已提交
333

Z
zhangxingxia 已提交
334
**示例:**
Z
zhangxingxia 已提交
335
  ```js
Z
zengyawen 已提交
336
  fileio.closeSync(fd);
Z
zengyawen 已提交
337 338 339
  ```


Z
zengyawen 已提交
340
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
341

Z
zengyawen 已提交
342
close(): Promise&lt;void&gt;
Z
zengyawen 已提交
343

Z
zengyawen 已提交
344
以异步方法关闭文件流,使用promise形式返回结果。
Z
zengyawen 已提交
345

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

Z
zhangxingxia 已提交
348
**返回值:**
H
HelloCrease 已提交
349 350
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
351
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
352

Z
zhangxingxia 已提交
353
**示例:**
Z
zhangxingxia 已提交
354 355 356 357 358 359
  ```js
  fileio.close().then(function(){
      console.info("close file stream successfully");
  }).catch(function(err){
      console.info("close file stream failed with error:"+ err);
  });
Z
zengyawen 已提交
360 361 362
  ```


Z
zengyawen 已提交
363
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
364

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

Z
zengyawen 已提交
367
以异步方法关闭文件流,使用callback形式返回结果。
Z
zengyawen 已提交
368

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

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

Z
zhangxingxia 已提交
376
**示例:**
Z
zhangxingxia 已提交
377 378 379
  ```js
  fileio.close(function(err){
      // do something
Z
zengyawen 已提交
380
  });
Z
zengyawen 已提交
381 382 383
  ```


Z
zengyawen 已提交
384
## fileio.copyFile
Z
zengyawen 已提交
385

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

Z
zengyawen 已提交
388
以异步方法复制文件,使用promise形式返回结果。
Z
zengyawen 已提交
389

390 391
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
399
**返回值:**
H
HelloCrease 已提交
400 401
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
402
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
403

Z
zhangxingxia 已提交
404
**示例:**
Z
zhangxingxia 已提交
405 406 407 408 409 410
  ```js
  fileio.copyFile(src, dest).then(function(){
      console.info("copyFile successfully");
  }).catch(function(err){
      console.info("copyFile failed with error:"+ err);
  });
Z
zengyawen 已提交
411 412 413
  ```


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

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

Z
zengyawen 已提交
418
以异步方法复制文件,使用callback形式返回结果。
Z
zengyawen 已提交
419

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

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

Z
zhangxingxia 已提交
430
**示例:**
Z
zhangxingxia 已提交
431 432 433
  ```js
  fileio.copyFile(src, dest, function (err) {
      // do something
Z
zengyawen 已提交
434
  });
Z
zengyawen 已提交
435 436 437
  ```


Z
zengyawen 已提交
438
## fileio.copyFileSync
Z
zengyawen 已提交
439

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

Z
zengyawen 已提交
442
以同步方法复制文件。
Z
zengyawen 已提交
443

444 445
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
453
**示例:**
Z
zhangxingxia 已提交
454
  ```js
Z
zengyawen 已提交
455
  fileio.copyFileSync(src, dest);
Z
zengyawen 已提交
456 457 458
  ```


Z
zengyawen 已提交
459
## fileio.mkdir
Z
zengyawen 已提交
460

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

以异步方法创建目录,使用promise形式返回结果。
Z
zengyawen 已提交
464

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

Z
zhangxingxia 已提交
467
**参数:**
H
HelloCrease 已提交
468 469 470 471
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
472

Z
zhangxingxia 已提交
473
**返回值:**
H
HelloCrease 已提交
474 475
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
476
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
477

Z
zhangxingxia 已提交
478
**示例:**
Z
zhangxingxia 已提交
479 480 481 482 483 484
  ```js
  fileio.mkdir(path).then(function() {
      console.info("mkdir successfully");
  }).catch(function (error){
      console.info("mkdir failed with error:"+ error);
  });
Z
zengyawen 已提交
485 486 487
  ```


Z
zengyawen 已提交
488
## fileio.mkdir
Z
zengyawen 已提交
489

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

Z
zengyawen 已提交
492
以异步方法创建目录,使用callback形式返回结果。
Z
zengyawen 已提交
493

494 495
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
496
**参数:**
H
HelloCrease 已提交
497 498 499 500 501
  | 参数名      | 类型                        | 必填   | 说明                                       |
  | -------- | ------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
502

Z
zhangxingxia 已提交
503
**示例:**
Z
zhangxingxia 已提交
504 505
  ```js
  fileio.mkdir(path, function(err) {
Z
zhangxingxia 已提交
506
    console.info("mkdir successfully");
Z
zengyawen 已提交
507
  });
Z
zengyawen 已提交
508 509 510
  ```


Z
zengyawen 已提交
511
## fileio.mkdirSync
Z
zengyawen 已提交
512

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

Z
zengyawen 已提交
515
以同步方法创建目录。
Z
zengyawen 已提交
516

517 518
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
519
**参数:**
H
HelloCrease 已提交
520 521 522 523
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
524

Z
zhangxingxia 已提交
525
**示例:**
Z
zhangxingxia 已提交
526
  ```js
Z
zengyawen 已提交
527 528 529 530 531 532 533 534 535 536
  fileio.mkdirSync(path);
  ```


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

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

以异步的方法打开文件,使用promise形式返回结果。

537 538
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
539
**参数:**
H
HelloCrease 已提交
540 541 542 543 544
  | 参数名   | 类型     | 必填   | 说明                                       |
  | ----- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
545

Z
zhangxingxia 已提交
546
**返回值:**
H
HelloCrease 已提交
547 548
  | 类型                    | 说明          |
  | --------------------- | ----------- |
Z
zengyawen 已提交
549
  | Promise&lt;number&gt; | 打开文件的文件描述符。 |
Z
zengyawen 已提交
550

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


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

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

Z
zengyawen 已提交
565
以异步的方法打开文件,使用callback形式返回结果。
Z
zengyawen 已提交
566

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

Z
zhangxingxia 已提交
569
**参数:**
H
HelloCrease 已提交
570 571 572 573 574 575
  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
576

Z
zhangxingxia 已提交
577
**示例:**
Z
zhangxingxia 已提交
578 579 580
  ```js
  fileio.open(path, 0, function(err, fd) {
      // do something
Z
zengyawen 已提交
581
  });
Z
zengyawen 已提交
582 583 584
  ```


Z
zengyawen 已提交
585
## fileio.openSync
Z
zengyawen 已提交
586

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

Z
zengyawen 已提交
589
以同步方法打开文件。
Z
zengyawen 已提交
590

591 592
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
593
**参数:**
H
HelloCrease 已提交
594 595 596 597 598
  | 参数名   | 类型     | 必填   | 说明                                       |
  | ----- | ------ | ---- | ---------------------------------------- |
  | 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:其余用户具有可执行权限。<br/>创建出的文件权限受umask影响,umask随进程启动确定,其修改当前不开放。 |
Z
zengyawen 已提交
599

Z
zhangxingxia 已提交
600
**返回值:**
H
HelloCrease 已提交
601 602
  | 类型     | 说明          |
  | ------ | ----------- |
Z
zengyawen 已提交
603
  | number | 打开文件的文件描述符。 |
Z
zengyawen 已提交
604

Z
zhangxingxia 已提交
605
**示例:**
Z
zhangxingxia 已提交
606
  ```js
Z
zengyawen 已提交
607
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
608 609 610
  ```


Z
zengyawen 已提交
611
## fileio.read
Z
zengyawen 已提交
612

613 614 615 616 617
read(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
618

Z
zengyawen 已提交
619
以异步方法从文件读取数据,使用promise形式返回结果。
Z
zengyawen 已提交
620

621 622
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
630
**返回值:**
Z
zhangxingxia 已提交
631

H
HelloCrease 已提交
632 633
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
634
  | Promise&lt;[ReadOut](#readout)&gt; | 读取的结果。 |
Z
zengyawen 已提交
635

Z
zhangxingxia 已提交
636
**示例:**
Z
zhangxingxia 已提交
637
  ```js
Z
zengyawen 已提交
638 639
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
640
  fileio.read(fd, buf).then(function(readout){
Z
zhangxingxia 已提交
641 642
      console.info("read file data successfully");
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
643 644 645
  }).catch(function(error){
      console.info("read file data failed with error:"+ error);
  });
Z
zengyawen 已提交
646 647 648
  ```


Z
zengyawen 已提交
649
## fileio.read
Z
zengyawen 已提交
650

651 652 653 654 655
read(fd: number, buffer: ArrayBuffer, options: {
    offset?: number;
    length?: number;
    position?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
656

Z
zengyawen 已提交
657
以异步方法从文件读取数据,使用callback形式返回结果。
Z
zengyawen 已提交
658

659 660
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
669
**示例:**
Z
zhangxingxia 已提交
670
  ```js
Z
zengyawen 已提交
671 672
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
673
  fileio.read(fd, buf, function (err, readOut) {
Z
zhangxingxia 已提交
674 675 676
      if (readOut) {
          console.info("read file data successfully");
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
677 678
      }
  });
Z
zengyawen 已提交
679
  ```
Z
zengyawen 已提交
680 681


Z
zengyawen 已提交
682
## fileio.readSync
Z
zengyawen 已提交
683

684 685 686 687 688
readSync(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): number
Z
zengyawen 已提交
689 690 691

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

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

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

Z
zhangxingxia 已提交
701
**返回值:**
H
HelloCrease 已提交
702 703
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
704 705
  | number | 实际读取的长度。 |

Z
zhangxingxia 已提交
706
**示例:**
Z
zhangxingxia 已提交
707
  ```js
Z
zengyawen 已提交
708 709 710 711 712 713 714 715 716 717 718 719
  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;

以异步方法删除目录,使用promise形式返回结果。

720 721
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
722
**参数:**
H
HelloCrease 已提交
723 724 725
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待删除目录的绝对路径。 |
Z
zengyawen 已提交
726

Z
zhangxingxia 已提交
727
**返回值:**
H
HelloCrease 已提交
728 729
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
730 731
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
732
**示例:**
Z
zhangxingxia 已提交
733 734 735 736 737
  ```js
  fileio.rmdir(path).then(function() {
      console.info("rmdir successfully");
  }).catch(function(err){
      console.info("rmdir failed with error:"+ err);
Z
zengyawen 已提交
738 739 740 741 742 743 744 745 746 747
  });
  ```


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

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

以异步方法删除目录,使用callback形式返回结果。

748 749
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
750
**参数:**
H
HelloCrease 已提交
751 752 753 754
  | 参数名      | 类型                        | 必填   | 说明           |
  | -------- | ------------------------- | ---- | ------------ |
  | path     | string                    | 是    | 待删除目录的绝对路径。  |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步删除目录之后的回调。 |
Z
zengyawen 已提交
755

Z
zhangxingxia 已提交
756
**示例:**
Z
zhangxingxia 已提交
757 758 759
  ```js
  fileio.rmdir(path, function(err){
      // do something
Z
zhangxingxia 已提交
760
      console.info("rmdir successfully");
Z
zengyawen 已提交
761 762 763 764
  });
  ```


765
## fileio.rmdirSync<sup>7+</sup>
Z
zengyawen 已提交
766

767
rmdirSync(path: string): void
Z
zengyawen 已提交
768 769 770

以同步方法删除目录。

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

Z
zhangxingxia 已提交
773
**参数:**
H
HelloCrease 已提交
774 775 776
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待删除目录的绝对路径。 |
Z
zengyawen 已提交
777

Z
zhangxingxia 已提交
778
**示例:**
Z
zhangxingxia 已提交
779
  ```js
Z
zengyawen 已提交
780 781 782 783 784 785 786 787 788 789
  fileio.rmdirSync(path);
  ```


## fileio.unlink

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

以异步方法删除文件,使用promise形式返回结果。

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

Z
zhangxingxia 已提交
792
**参数:**
H
HelloCrease 已提交
793 794 795
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待删除文件的绝对路径。 |
Z
zengyawen 已提交
796

Z
zhangxingxia 已提交
797
**返回值:**
H
HelloCrease 已提交
798 799
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
800 801
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
802
**示例:**
Z
zhangxingxia 已提交
803 804 805 806 807 808
  ```js
  fileio.unlink(path).then(function(){
      console.info("remove file successfully");
  }).catch(function(error){
      console.info("remove file failed with error:"+ error);
  });
Z
zengyawen 已提交
809 810 811 812 813 814 815 816 817
  ```


## fileio.unlink

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

以异步方法删除文件,使用callback形式返回结果。

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

Z
zhangxingxia 已提交
820
**参数:**
H
HelloCrease 已提交
821 822 823 824
  | 参数名      | 类型                        | 必填   | 说明           |
  | -------- | ------------------------- | ---- | ------------ |
  | path     | string                    | 是    | 待删除文件的绝对路径。  |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步删除文件之后的回调。 |
Z
zengyawen 已提交
825

Z
zhangxingxia 已提交
826
**示例:**
Z
zhangxingxia 已提交
827 828
  ```js
  fileio.unlink(path, function(err) {
Z
zhangxingxia 已提交
829
      console.info("remove file successfully");
Z
zengyawen 已提交
830 831 832 833 834 835 836 837 838 839
  });
  ```


## fileio.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

840 841
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
842
**参数:**
H
HelloCrease 已提交
843 844 845
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待删除文件的绝对路径。 |
Z
zengyawen 已提交
846

Z
zhangxingxia 已提交
847
**示例:**
Z
zhangxingxia 已提交
848
  ```js
Z
zengyawen 已提交
849 850 851 852 853 854
  fileio.unlinkSync(path);
  ```


## fileio.write

855 856 857 858 859 860
write(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
861 862 863

以异步方法将数据写入文件,使用promise形式返回结果。

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

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

Z
zhangxingxia 已提交
873
**返回值:**
H
HelloCrease 已提交
874 875
  | 类型                    | 说明       |
  | --------------------- | -------- |
Z
zengyawen 已提交
876 877
  | Promise&lt;number&gt; | 实际写入的长度。 |

Z
zhangxingxia 已提交
878
**示例:**
Z
zhangxingxia 已提交
879
  ```js
Z
zengyawen 已提交
880
  let fd = fileio.openSync(fpath, 0o100 | 0o2, 0o666);
Z
zhangxingxia 已提交
881
  fileio.write(fd, "hello, world").then(function(number){
Z
zhangxingxia 已提交
882
       console.info("write data to file successfully and size is:"+ number);
Z
zhangxingxia 已提交
883 884 885
  }).catch(function(err){
      console.info("write data to file failed with error:"+ err);
  });
Z
zengyawen 已提交
886 887 888 889 890
  ```


## fileio.write

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

以异步方法将数据写入文件,使用callback形式返回结果。

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

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

Z
zhangxingxia 已提交
910
**示例:**
Z
zhangxingxia 已提交
911
  ```js
Z
zengyawen 已提交
912 913
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
  fileio.write(fd, "hello, world", function (err, bytesWritten) {
Z
zhangxingxia 已提交
914 915
      if (bytesWritten) {
         console.info("write data to file successfully and size is:"+ bytesWritten);
Z
zengyawen 已提交
916 917 918 919 920 921 922
      }
  });
  ```


## fileio.writeSync

923 924 925 926 927 928
writeSync(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
929 930 931

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

932 933
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
941
**返回值:**
H
HelloCrease 已提交
942 943
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
944 945
  | number | 实际写入的长度。 |

Z
zhangxingxia 已提交
946
**示例:**
Z
zhangxingxia 已提交
947
  ```js
Z
zengyawen 已提交
948 949 950 951 952 953 954 955 956 957 958
  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;

以异步方法计算文件的哈希值,使用promise形式返回结果。

959 960
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
961
**参数:**
H
HelloCrease 已提交
962 963 964 965
  | 参数名       | 类型     | 必填   | 说明                                       |
  | --------- | ------ | ---- | ---------------------------------------- |
  | path      | string | 是    | 待计算哈希值文件的绝对路径。                           |
  | algorithm | string | 是    | 哈希计算采用的算法。可选&nbsp;"md5"、"sha1"&nbsp;&nbsp;"sha256"。建议采用安全强度更高的&nbsp;"sha256"。 |
Z
zengyawen 已提交
966

Z
zhangxingxia 已提交
967
**返回值:**
H
HelloCrease 已提交
968 969
  | 类型                    | 说明                         |
  | --------------------- | -------------------------- |
Z
zengyawen 已提交
970 971
  | Promise&lt;string&gt; | 文件的哈希值。表示为十六进制数字串,所有字母均大写。 |

Z
zhangxingxia 已提交
972
**示例:**
Z
zhangxingxia 已提交
973 974 975 976 977 978
  ```js
  fileio.hash(path, "sha256").then(function(str){
      console.info("calculate file hash successfully:"+ str);
  }).catch(function(error){
      console.info("calculate file hash failed with error:"+ err);
  });
Z
zengyawen 已提交
979 980 981 982 983
  ```


## fileio.hash

984
hash(path: string, algorithm: string, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
985 986 987

以异步方法计算文件的哈希值,使用callback形式返回结果。

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

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

Z
zhangxingxia 已提交
997
**示例:**
Z
zhangxingxia 已提交
998
  ```js
Z
zengyawen 已提交
999
  fileio.hash(fpath, "sha256", function(err, hashStr) {
Z
zhangxingxia 已提交
1000 1001
      if (hashStr) {
          console.info("calculate file hash successfully:"+ hashStr);
Z
zengyawen 已提交
1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012
      }
  });
  ```


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

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

以异步方法基于文件路径改变文件权限,使用promise形式返回结果。

1013 1014
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1015
**参数:**
H
HelloCrease 已提交
1016 1017 1018 1019
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | path | string | 是    | 待改变文件权限的绝对路径。                            |
  | 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 已提交
1020

Z
zhangxingxia 已提交
1021
**返回值:**
H
HelloCrease 已提交
1022 1023
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1024 1025
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1026
**示例:**
Z
zhangxingxia 已提交
1027 1028 1029 1030 1031
  ```js
  fileio.chmod(path, mode).then(function() {
      console.info("chmod successfully");
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
1032 1033 1034 1035 1036 1037 1038 1039 1040 1041
  });
  ```


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

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

以异步方法基于文件路径改变文件权限,使用callback形式返回结果。

1042 1043
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1044
**参数:**
H
HelloCrease 已提交
1045 1046 1047 1048 1049
  | 参数名      | 类型                        | 必填   | 说明                                       |
  | -------- | ------------------------- | ---- | ---------------------------------------- |
  | path     | string                    | 是    | 待改变文件权限的绝对路径。                            |
  | 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 已提交
1050

Z
zhangxingxia 已提交
1051
**示例:**
Z
zhangxingxia 已提交
1052 1053 1054
  ```js
  fileio.chmod(path, mode, function (err) {
      // do something
Z
zengyawen 已提交
1055 1056 1057 1058 1059 1060 1061 1062 1063 1064
  });
  ```


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

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

以同步方法基于文件路径改变文件权限。

1065 1066
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1067
**参数:**
H
HelloCrease 已提交
1068 1069 1070 1071
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | path | string | 是    | 待改变文件权限的绝对路径。                            |
  | 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 已提交
1072

Z
zhangxingxia 已提交
1073
**示例:**
Z
zhangxingxia 已提交
1074
  ```js
Z
zengyawen 已提交
1075 1076 1077 1078 1079 1080 1081 1082 1083 1084
  fileio.chmodSync(fpath, mode);
  ```


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

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

以异步方法基于文件描述符获取文件状态信息,使用promise形式返回结果。

1085 1086
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1087
**参数:**
H
HelloCrease 已提交
1088 1089 1090
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待获取文件的文件描述符。 |
Z
zengyawen 已提交
1091

Z
zhangxingxia 已提交
1092
**返回值:**
H
HelloCrease 已提交
1093 1094
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
Z
zengyawen 已提交
1095 1096
  | Promise&lt;[Stat](#stat)&gt; | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1097
**示例:**
Z
zhangxingxia 已提交
1098 1099 1100 1101 1102 1103
  ```js
  fileio.fstat(fd).then(function(stat){
      console.info("fstat successfully:"+ JSON.stringify(stat));
  }).catch(function(err){
      console.info("fstat failed with error:"+ err);
  });
Z
zengyawen 已提交
1104 1105 1106 1107 1108 1109 1110 1111 1112
  ```


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

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

以异步方法基于文件描述符获取文件状态信息,使用callback形式返回结果。

1113 1114
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1121
**示例:**
Z
zhangxingxia 已提交
1122
  ```js
Z
zengyawen 已提交
1123
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1124 1125
  fileio.fstat(fd, function (err) {
      // do something
Z
zengyawen 已提交
1126 1127 1128 1129 1130 1131 1132 1133 1134 1135
  });
  ```


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

fstatSync(fd: number): Stat

以同步方法基于文件描述符获取文件状态信息。

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

Z
zhangxingxia 已提交
1138
**参数:**
H
HelloCrease 已提交
1139 1140 1141
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待获取文件的文件描述符。 |
Z
zengyawen 已提交
1142

Z
zhangxingxia 已提交
1143
**返回值:**
H
HelloCrease 已提交
1144 1145
  | 类型            | 说明         |
  | ------------- | ---------- |
Z
zengyawen 已提交
1146 1147
  | [Stat](#stat) | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1148
**示例:**
Z
zhangxingxia 已提交
1149
  ```js
Z
zengyawen 已提交
1150 1151 1152 1153 1154 1155 1156
  let fd = fileio.openSync(path);
  let stat = fileio.fstatSync(fd);
  ```


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

1157
ftruncate(fd: number, len?: number): Promise&lt;void&gt;
Z
zengyawen 已提交
1158 1159 1160

以异步方法基于文件描述符截断文件,使用promise形式返回结果。

1161 1162
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1163
**参数:**
H
HelloCrease 已提交
1164 1165 1166 1167
  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | fd   | number | 是    | 待截断文件的文件描述符。     |
  | len  | number | 是    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1168

Z
zhangxingxia 已提交
1169
**返回值:**
H
HelloCrease 已提交
1170 1171
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1172 1173
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1174
**示例:**
Z
zhangxingxia 已提交
1175
  ```js
Z
zengyawen 已提交
1176
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1177 1178 1179 1180
  fileio.ftruncate(fd, 5).then(function(err) {    
      console.info("truncate file successfully");
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1181 1182 1183 1184 1185 1186 1187 1188 1189 1190
  });
  ```


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

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

以异步方法基于文件描述符截断文件,使用callback形式返回结果。

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

Z
zhangxingxia 已提交
1193
**参数:**
H
HelloCrease 已提交
1194 1195 1196 1197 1198
  | 参数名      | 类型                        | 必填   | 说明               |
  | -------- | ------------------------- | ---- | ---------------- |
  | fd       | number                    | 是    | 待截断文件的文件描述符。     |
  | len      | number                    | 是    | 文件截断后的长度,以字节为单位。 |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步截断文件的信息之后的回调。  |
Z
zengyawen 已提交
1199

Z
zhangxingxia 已提交
1200
**示例:**
Z
zhangxingxia 已提交
1201 1202 1203
  ```js
  fileio.ftruncate(fd, len, function(err){
      // do something
Z
zengyawen 已提交
1204 1205 1206 1207 1208 1209 1210 1211 1212 1213
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
1216
**参数:**
H
HelloCrease 已提交
1217 1218 1219 1220
  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | fd   | number | 是    | 待截断文件的文件描述符。     |
  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1221

Z
zhangxingxia 已提交
1222
**示例:**
Z
zhangxingxia 已提交
1223
  ```js
Z
zhangxingxia 已提交
1224
  fileio.ftruncateSync(fd, len);
Z
zengyawen 已提交
1225 1226 1227 1228 1229
  ```


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

1230
truncate(path: string, len?: number): Promise&lt;void&gt;
Z
zengyawen 已提交
1231 1232 1233

以异步方法基于文件路径截断文件,使用promise形式返回结果。

1234 1235
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1236
**参数:**
H
HelloCrease 已提交
1237 1238 1239 1240
  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | path | string | 是    | 待截断文件的绝对路径。      |
  | len  | number | 是    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1241

Z
zhangxingxia 已提交
1242
**返回值:**
H
HelloCrease 已提交
1243 1244
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1245 1246
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1247
**示例:**
Z
zhangxingxia 已提交
1248 1249 1250 1251 1252
  ```js
  fileio.truncate(path, len).then(function(){
      console.info("truncate file successfully");
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1253 1254 1255 1256 1257 1258 1259 1260 1261 1262
  });
  ```


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

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

以异步方法基于文件路径截断文件,使用callback形式返回结果。

1263 1264
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1265
**参数:**
H
HelloCrease 已提交
1266 1267 1268 1269 1270
  | 参数名      | 类型                        | 必填   | 说明               |
  | -------- | ------------------------- | ---- | ---------------- |
  | path     | string                    | 是    | 待截断文件的绝对路径。      |
  | len      | number                    | 是    | 文件截断后的长度,以字节为单位。 |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步截断文件的信息之后的回调。  |
Z
zengyawen 已提交
1271

Z
zhangxingxia 已提交
1272
**示例:**
Z
zhangxingxia 已提交
1273 1274 1275
  ```js
  fileio.truncate(path, len, function(err){
      // do something
Z
zengyawen 已提交
1276 1277 1278 1279 1280 1281
  });
  ```


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

1282
truncateSync(path: string, len?: number): void
Z
zengyawen 已提交
1283 1284 1285

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

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

Z
zhangxingxia 已提交
1288
**参数:**
H
HelloCrease 已提交
1289 1290 1291 1292
  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | path | string | 是    | 待截断文件的绝对路径。      |
  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1293

Z
zhangxingxia 已提交
1294
**示例:**
Z
zhangxingxia 已提交
1295
  ```js
Z
zhangxingxia 已提交
1296
  fileio.truncateSync(path, len);
Z
zengyawen 已提交
1297 1298 1299 1300 1301
  ```


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

1302 1303 1304 1305 1306
readText(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): Promise&lt;string&gt;
Z
zengyawen 已提交
1307 1308 1309

以异步方法基于文本方式读取文件(即直接读取文件的文本内容),使用promise形式返回结果。

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

Z
zhangxingxia 已提交
1312
**参数:**
H
HelloCrease 已提交
1313 1314 1315 1316
  | 参数名      | 类型     | 必填   | 说明                                       |
  | -------- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
1317

Z
zhangxingxia 已提交
1318
**返回值:**
H
HelloCrease 已提交
1319 1320
  | 类型                    | 说明         |
  | --------------------- | ---------- |
Z
zengyawen 已提交
1321 1322
  | Promise&lt;string&gt; | 返回读取文件的内容。 |

Z
zhangxingxia 已提交
1323
**示例:**
Z
zhangxingxia 已提交
1324 1325 1326 1327 1328
  ```js
  fileio.readText(path).then(function(str) {
      console.info("readText successfully:"+ str);
  }).catch(function(err){
      console.info("readText failed with error:"+ err);
Z
zengyawen 已提交
1329 1330 1331 1332 1333 1334
  });
  ```


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

1335 1336 1337 1338 1339
readText(filePath: string, options: {
    position?: number;
    length?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
1340 1341 1342

以异步方法基于文本方式读取文件(即直接读取文件的文本内容),使用callback形式返回结果。

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

Z
zhangxingxia 已提交
1345
**参数:**
H
HelloCrease 已提交
1346 1347 1348 1349 1350
  | 参数名      | 类型                          | 必填   | 说明                                       |
  | -------- | --------------------------- | ---- | ---------------------------------------- |
  | 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'。 |
  | callback | AsyncCallback&lt;string&gt; | 是    | 异步通过文本方式读取文件之后的回调。                       |
Z
zengyawen 已提交
1351

Z
zhangxingxia 已提交
1352
**示例:**
Z
zhangxingxia 已提交
1353
  ```js
Z
zengyawen 已提交
1354
  fileio.readText(path, function(err, str){
Z
zhangxingxia 已提交
1355
      // do something
Z
zengyawen 已提交
1356 1357 1358 1359 1360 1361
  });
  ```


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

1362 1363 1364 1365 1366
readTextSync(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): string
Z
zengyawen 已提交
1367 1368 1369

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

1370 1371
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1372
**参数:**
H
HelloCrease 已提交
1373 1374 1375 1376
  | 参数名      | 类型     | 必填   | 说明                                       |
  | -------- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
1377

Z
zhangxingxia 已提交
1378
**返回值:**
Z
zhangxingxia 已提交
1379 1380 1381
  | 类型   | 说明                 |
  | ------ | -------------------- |
  | string | 返回读取文件的内容。 |
Z
zengyawen 已提交
1382

Z
zhangxingxia 已提交
1383
**示例:**
Z
zhangxingxia 已提交
1384 1385
  ```js
  let str = fileio.readTextSync(path, {position: 1, length: 3});
Z
zengyawen 已提交
1386 1387 1388 1389 1390 1391 1392 1393 1394
  ```


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

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

以异步方法获取链接状态信息,使用promise形式返回结果。

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

Z
zhangxingxia 已提交
1397
**参数:**
H
HelloCrease 已提交
1398 1399 1400
  | 参数名  | 类型     | 必填   | 说明                |
  | ---- | ------ | ---- | ----------------- |
  | path | string | 是    | 目标文件的绝对路径,指向链接状态。 |
Z
zengyawen 已提交
1401

Z
zhangxingxia 已提交
1402
**返回值:**
H
HelloCrease 已提交
1403 1404
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
Z
zengyawen 已提交
1405 1406
  | Promise&lt;[Stat](#stat)&gt; | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1407
**示例:**
Z
zhangxingxia 已提交
1408 1409 1410 1411 1412 1413
  ```js
  fileio.lstat(path).then(function(stat){
      console.info("get link status successfully:"+ number);
  }).catch(function(err){
      console.info("get link status failed with error:"+ err);
  });
Z
zengyawen 已提交
1414 1415 1416 1417 1418 1419 1420 1421 1422
  ```


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

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

以异步方法获取链接状态信息,使用callback形式返回结果。

1423 1424
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1425
**参数:**
H
HelloCrease 已提交
1426 1427 1428 1429
  | 参数名      | 类型                                 | 必填   | 说明                |
  | -------- | ---------------------------------- | ---- | ----------------- |
  | path     | string                             | 是    | 目标文件的绝对路径,指向链接状态。 |
  | callback | AsyncCallback&lt;[Stat](#stat)&gt; | 是    | 异步获取链接状态信息之后的回调。  |
Z
zengyawen 已提交
1430

Z
zhangxingxia 已提交
1431
**示例:**
Z
zhangxingxia 已提交
1432 1433 1434
  ```js
  fileio.lstat(path, function (err, stat) {
      // do something
Z
zengyawen 已提交
1435
  });
Z
zengyawen 已提交
1436 1437 1438 1439 1440 1441 1442 1443 1444
  ```


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

lstatSync(path:string): Stat

以同步方法获取链接状态信息。

1445 1446
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1447
**参数:**
H
HelloCrease 已提交
1448 1449 1450
  | 参数名  | 类型     | 必填   | 说明                |
  | ---- | ------ | ---- | ----------------- |
  | path | string | 是    | 目标文件的绝对路径,指向链接状态。 |
Z
zengyawen 已提交
1451

Z
zhangxingxia 已提交
1452
**返回值:**
H
HelloCrease 已提交
1453 1454
  | 类型            | 说明         |
  | ------------- | ---------- |
Z
zengyawen 已提交
1455 1456
  | [Stat](#stat) | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1457
**示例:**
Z
zhangxingxia 已提交
1458
  ```js
Z
zengyawen 已提交
1459 1460 1461 1462 1463 1464
  let stat = fileio.lstatSync(path);
  ```


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

1465 1466 1467 1468 1469
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
1470 1471 1472

以异步方法从文件读取数据,使用promise形式返回结果。

1473 1474
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1481
**返回值:**
H
HelloCrease 已提交
1482 1483
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
1484
  | Promise&lt;[ReadOut](#readout)&gt; | 读取的结果。 |
Z
zengyawen 已提交
1485

Z
zhangxingxia 已提交
1486
**示例:**
Z
zhangxingxia 已提交
1487 1488
  ```js
  fileio.read(new ArrayBuffer(4096)).then(function(readout){
Z
zhangxingxia 已提交
1489 1490
      console.info("read file data successfully");
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
1491 1492 1493
  }).catch(function(err){
      console.info("read file data failed with error:"+ err);
  });
Z
zengyawen 已提交
1494 1495 1496 1497 1498
  ```


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

1499 1500 1501 1502 1503
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
1504 1505 1506

异步方法从文件读取数据,使用callback形式返回结果。

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

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

Z
zhangxingxia 已提交
1516
**示例:**
Z
zhangxingxia 已提交
1517
  ```js
Z
zengyawen 已提交
1518 1519
  let buf = new ArrayBuffer(4096);
  fileio.read(buf, function (err, readOut) {
Z
zhangxingxia 已提交
1520 1521 1522
      if (readOut) {
          console.info("read file data successfully");
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533
      }
  });
  ```


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

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

以异步方法重命名文件,使用promise形式返回结果。

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

Z
zhangxingxia 已提交
1536
**参数:**
Z
zhangxingxia 已提交
1537 1538 1539 1540
  | 参数名  | 类型   | 必填 | 说明                     |
  | ------- | ------ | ---- | ------------------------ |
  | oldPath | string | 是   | 目标文件的当前绝对路径。 |
  | newPath | String | 是   | 目标文件的新绝对路径。   |
Z
zengyawen 已提交
1541

Z
zhangxingxia 已提交
1542
**返回值:**
H
HelloCrease 已提交
1543 1544
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1545 1546
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1547
**示例:**
Z
zhangxingxia 已提交
1548
  ```js
Z
zhangxingxia 已提交
1549
  fileio.rename(oldPath, newPath).then(function() {
Z
zhangxingxia 已提交
1550 1551 1552
      console.info("rename successfully");
  }).catch(function(err){
      console.info("rename failed with error:"+ err);
Z
zengyawen 已提交
1553 1554 1555 1556 1557 1558 1559 1560 1561 1562
  });
  ```


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

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

以异步方法重命名文件,使用callback形式返回结果。

1563 1564
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1565
**参数:**
H
HelloCrease 已提交
1566 1567
  | 参数名      | 类型                        | 必填   | 说明            |
  | -------- | ------------------------- | ---- | ------------- |
Z
zhangxingxia 已提交
1568 1569
  | oldPath  | string                    | 是    | 目标文件的当前绝对路径。  |
  | newPath  | String                    | 是    | 目标文件的新绝对路径。   |
H
HelloCrease 已提交
1570
  | Callback | AsyncCallback&lt;void&gt; | 是    | 异步重命名文件之后的回调。 |
Z
zengyawen 已提交
1571

Z
zhangxingxia 已提交
1572
**示例:**
Z
zhangxingxia 已提交
1573
  ```js
Z
zhangxingxia 已提交
1574
  fileio.rename(oldPath, newPath, function(err){
Z
zengyawen 已提交
1575 1576 1577 1578 1579 1580 1581 1582 1583 1584
  });
  ```


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

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

以同步方法重命名文件。

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

Z
zhangxingxia 已提交
1587
**参数:**
H
HelloCrease 已提交
1588 1589 1590
  | 参数名     | 类型     | 必填   | 说明           |
  | ------- | ------ | ---- | ------------ |
  | oldPath | string | 是    | 目标文件的当前绝对路径。 |
Z
zhangxingxia 已提交
1591
  | newPath | String | 是    | 目标文件的新绝对路径。  |
Z
zengyawen 已提交
1592

Z
zhangxingxia 已提交
1593
**示例:**
Z
zhangxingxia 已提交
1594
  ```js
Z
zhangxingxia 已提交
1595
  fileio.renameSync(oldPath, newPath);
Z
zengyawen 已提交
1596 1597 1598 1599 1600 1601 1602 1603 1604
  ```


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

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

以异步方法同步文件数据,使用promise形式返回结果。

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

Z
zhangxingxia 已提交
1607
**参数:**
H
HelloCrease 已提交
1608 1609 1610
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1611

Z
zhangxingxia 已提交
1612
**返回值:**
H
HelloCrease 已提交
1613 1614
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1615 1616
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1617
**示例:**
Z
zhangxingxia 已提交
1618 1619 1620 1621 1622 1623
  ```js
  fileio.fsync(fd).then(function(){
      console.info("sync data successfully");
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
  });
Z
zengyawen 已提交
1624 1625 1626 1627 1628 1629 1630 1631 1632
  ```


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

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

以异步方法同步文件数据,使用callback形式返回结果。

1633 1634
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1641
**示例:**
Z
zhangxingxia 已提交
1642
  ```js
Z
zengyawen 已提交
1643
  fileio.fsync(fd, function(err){
Z
zhangxingxia 已提交
1644
      // do something
Z
zengyawen 已提交
1645 1646 1647 1648 1649 1650 1651 1652 1653 1654
  });
  ```


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

fsyncSync(fd: number): void

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

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

Z
zhangxingxia 已提交
1657
**参数:**
H
HelloCrease 已提交
1658 1659 1660
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1661

Z
zhangxingxia 已提交
1662
**示例:**
Z
zhangxingxia 已提交
1663
  ```js
Z
zengyawen 已提交
1664 1665 1666 1667 1668 1669 1670 1671 1672 1673
  fileio.fyncsSync(fd);
  ```


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

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

以异步方法实现文件内容数据同步,使用promise形式返回结果。

1674 1675
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1676
**参数:**
H
HelloCrease 已提交
1677 1678 1679
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1680

Z
zhangxingxia 已提交
1681
**返回值:**
H
HelloCrease 已提交
1682 1683
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1684 1685
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果,本调用将返回空值。 |

Z
zhangxingxia 已提交
1686
**示例:**
Z
zhangxingxia 已提交
1687 1688 1689 1690 1691
  ```js
  fileio.fdatasync(fd).then(function(err) {
      console.info("sync data successfully");
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
Z
zengyawen 已提交
1692 1693 1694 1695 1696 1697 1698 1699 1700 1701
  });
  ```


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

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

以异步方法实现文件内容数据同步,使用callback形式返回结果。

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

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

Z
zhangxingxia 已提交
1710
**示例:**
Z
zhangxingxia 已提交
1711
  ```js
Z
zengyawen 已提交
1712
  fileio.fdatasync (fd, function (err) {
Z
zhangxingxia 已提交
1713
      // do something
Z
zengyawen 已提交
1714 1715 1716 1717 1718 1719 1720 1721 1722 1723
  });
  ```


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

fdatasyncSync(fd: number): void

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

1724 1725
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1726
**参数:**
H
HelloCrease 已提交
1727 1728 1729
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1730

Z
zhangxingxia 已提交
1731
**示例:**
Z
zhangxingxia 已提交
1732
  ```js
Z
zengyawen 已提交
1733 1734 1735 1736 1737 1738 1739 1740 1741 1742
  let stat = fileio.fdatasyncSync(fd);
  ```


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

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

以异步方法基于文件路径创建符号链接,使用promise形式返回结果。

1743 1744
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1745
**参数:**
H
HelloCrease 已提交
1746 1747 1748 1749
  | 参数名     | 类型     | 必填   | 说明           |
  | ------- | ------ | ---- | ------------ |
  | target  | string | 是    | 目标文件的绝对路径。   |
  | srcPath | string | 是    | 符号链接文件的绝对路径。 |
Z
zengyawen 已提交
1750

Z
zhangxingxia 已提交
1751
**返回值:**
H
HelloCrease 已提交
1752 1753
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1754 1755
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果,本调用将返回空值。 |

Z
zhangxingxia 已提交
1756
**示例:**
Z
zhangxingxia 已提交
1757 1758 1759 1760 1761
  ```js
  fileio.symlink(target, srcPath).then(function() {
      console.info("symlink successfully");
  }).catch(function(err){
      console.info("symlink failed with error:"+ err);
Z
zengyawen 已提交
1762 1763 1764 1765 1766 1767 1768 1769 1770 1771
  });
  ```


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

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

以异步方法基于文件路径创建符号链接,使用callback形式返回结果。

1772 1773
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1774
**参数:**
H
HelloCrease 已提交
1775 1776 1777 1778 1779
  | 参数名      | 类型                        | 必填   | 说明               |
  | -------- | ------------------------- | ---- | ---------------- |
  | target   | string                    | 是    | 目标文件的绝对路径。       |
  | srcPath  | string                    | 是    | 符号链接文件的绝对路径。     |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步创建符号链接信息之后的回调。 |
Z
zengyawen 已提交
1780

Z
zhangxingxia 已提交
1781
**示例:**
Z
zhangxingxia 已提交
1782 1783 1784
  ```js
  fileio.symlink(target, srcPath, function (err) {
      // do something
Z
zengyawen 已提交
1785 1786 1787 1788 1789 1790 1791 1792 1793 1794
  });
  ```


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

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

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

1795 1796
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1797
**参数:**
H
HelloCrease 已提交
1798 1799 1800 1801
  | 参数名     | 类型     | 必填   | 说明           |
  | ------- | ------ | ---- | ------------ |
  | target  | string | 是    | 目标文件的绝对路径。   |
  | srcPath | string | 是    | 符号链接文件的绝对路径。 |
Z
zengyawen 已提交
1802

Z
zhangxingxia 已提交
1803
**示例:**
Z
zhangxingxia 已提交
1804
  ```js
Z
zengyawen 已提交
1805 1806 1807 1808 1809 1810 1811 1812 1813 1814
  fileio.symlinkSync(target, srcPath);
  ```


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

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

以异步的方法基于文件路径改变文件所有者,使用promise形式返回结果。

1815 1816
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1817
**参数:**
H
HelloCrease 已提交
1818 1819 1820 1821 1822
  | 参数名  | 类型     | 必填   | 说明              |
  | ---- | ------ | ---- | --------------- |
  | path | string | 是    | 待改变文件的绝对路径。     |
  | uid  | number | 是    | 新的UID(UserID)。  |
  | gid  | number | 是    | 新的GID(GroupID)。 |
Z
zengyawen 已提交
1823

Z
zhangxingxia 已提交
1824
**返回值:**
H
HelloCrease 已提交
1825 1826
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1827 1828
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果,本调用将返回空值。 |

Z
zhangxingxia 已提交
1829
**示例:**
Z
zhangxingxia 已提交
1830
  ```js
Z
zengyawen 已提交
1831
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
1832
  fileio.chown(path, stat.uid, stat.gid).then(function(){
Z
zhangxingxia 已提交
1833 1834 1835 1836
      console.info("chown successfully");
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
1837 1838 1839 1840 1841 1842 1843 1844 1845
  ```


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

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

以异步的方法基于文件路径改变文件所有者,使用callback形式返回结果。

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

Z
zhangxingxia 已提交
1848
**参数:**
H
HelloCrease 已提交
1849 1850 1851 1852 1853 1854
  | 参数名      | 类型                        | 必填   | 说明              |
  | -------- | ------------------------- | ---- | --------------- |
  | path     | string                    | 是    | 待改变文件的绝对路径。     |
  | uid      | number                    | 是    | 新的UID。          |
  | gid      | number                    | 是    | 新的GID。          |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
1855

Z
zhangxingxia 已提交
1856
**示例:**
Z
zhangxingxia 已提交
1857
  ```js
Z
zengyawen 已提交
1858 1859
  let stat = fileio.statSync(fpath)
  fileio.chown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
1860
      // do something
Z
zengyawen 已提交
1861 1862 1863 1864 1865 1866 1867 1868 1869 1870
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
1873
**参数:**
H
HelloCrease 已提交
1874 1875 1876 1877 1878
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待改变文件的绝对路径。 |
  | uid  | number | 是    | 新的UID。      |
  | gid  | number | 是    | 新的GID。      |
Z
zengyawen 已提交
1879

Z
zhangxingxia 已提交
1880
**示例:**
Z
zhangxingxia 已提交
1881
  ```js
Z
zengyawen 已提交
1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892
  let stat = fileio.statSync(fpath)
  fileio.chownSync(path, stat.uid, stat.gid);
  ```


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

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

以异步的方法创建临时目录,使用promise形式返回结果。

1893 1894
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1900
**返回值:**
H
HelloCrease 已提交
1901 1902
  | 参数名                   | 说明         |
  | --------------------- | ---------- |
Z
zengyawen 已提交
1903 1904
  | Promise&lt;string&gt; | 生成的唯一目录路径。 |

Z
zhangxingxia 已提交
1905
**示例:**
Z
zhangxingxia 已提交
1906 1907 1908 1909 1910 1911
  ```js
  fileio.mkdtemp(path + "XXXX").then(function(path){
      console.info("mkdtemp successfully:"+ path);
  }).catch(function(err){
      console.info("mkdtemp failed with error:"+ err);
  });
Z
zengyawen 已提交
1912 1913 1914 1915 1916 1917 1918 1919 1920
  ```


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

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

以异步的方法创建临时目录,使用callback形式返回结果。

1921 1922
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1929
**示例:**
Z
zhangxingxia 已提交
1930
  ```js
Z
zengyawen 已提交
1931
  fileio.mkdtemp(path + "XXXX", function (err, res) {
Z
zhangxingxia 已提交
1932
      // do something
Z
zengyawen 已提交
1933 1934 1935 1936 1937 1938 1939 1940 1941 1942
  });
  ```


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

mkdtempSync(prefix: string): string

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

1943 1944
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
1950
**返回值:**
H
HelloCrease 已提交
1951 1952
  | 参数名    | 说明         |
  | ------ | ---------- |
Z
zengyawen 已提交
1953 1954
  | string | 产生的唯一目录路径。 |

Z
zhangxingxia 已提交
1955
**示例:**
Z
zhangxingxia 已提交
1956
  ```js
Z
zengyawen 已提交
1957 1958 1959 1960 1961 1962 1963 1964 1965 1966
  let res = fileio.mkdtempSync(path + "XXXX");
  ```


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

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

以异步方法基于文件描述符改变文件权限,使用promise形式返回结果。

1967 1968
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1969
**参数:**
H
HelloCrease 已提交
1970 1971 1972 1973
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
1974

Z
zhangxingxia 已提交
1975
**返回值:**
H
HelloCrease 已提交
1976 1977
  | 参数名                 | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1978 1979
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果,本调用将返回空值。 |

Z
zhangxingxia 已提交
1980
**示例:**
Z
zhangxingxia 已提交
1981 1982 1983 1984 1985
  ```js
  fileio.fchmod(fd, mode).then(function() {
      console.info("chmod successfully");
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
1986 1987 1988 1989 1990 1991 1992 1993 1994 1995
  });
  ```


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

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

以异步方法基于文件描述符改变文件权限,使用callback形式返回结果。

1996 1997
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1998
**参数:**
H
HelloCrease 已提交
1999 2000 2001 2002 2003
  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
2004

Z
zhangxingxia 已提交
2005
**示例:**
Z
zhangxingxia 已提交
2006
  ```js
Z
zengyawen 已提交
2007
  fileio.fchmod(fd, mode, function (err) {
Z
zhangxingxia 已提交
2008
      // do something
Z
zengyawen 已提交
2009 2010 2011 2012 2013 2014
  });
  ```


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

2015
fchmodSync(fd: number, mode: number): void
Z
zengyawen 已提交
2016 2017 2018

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

2019 2020
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2021
**参数:**
H
HelloCrease 已提交
2022 2023 2024 2025
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2026

Z
zhangxingxia 已提交
2027
**示例:**
Z
zhangxingxia 已提交
2028
  ```js
Z
zengyawen 已提交
2029 2030 2031 2032 2033 2034 2035 2036 2037 2038
   fileio.fchmodSync(fd, mode);
  ```


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

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

以异步方法基于文件路径打开文件流,使用promise形式返回结果。

2039 2040
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2041
**参数:**
H
HelloCrease 已提交
2042 2043 2044 2045
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2046

Z
zhangxingxia 已提交
2047
**返回值:**
H
HelloCrease 已提交
2048 2049
  | 类型                                | 说明        |
  | --------------------------------- | --------- |
Z
zengyawen 已提交
2050 2051
  | Promise&lt;[Stream](#stream7)&gt; | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2052
**示例:**
Z
zhangxingxia 已提交
2053 2054 2055 2056 2057 2058
  ```js
  fileio.createStream(path, "r+").then(function(stream){
      console.info("createStream successfully");
  }).catch(function(err){
      console.info("createStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2059 2060 2061 2062 2063 2064 2065 2066 2067
  ```


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

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

以异步方法基于文件路径打开文件流,使用callback形式返回结果。

2068 2069
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2070
**参数:**
H
HelloCrease 已提交
2071 2072 2073 2074 2075
  | 参数名      | 类型                                      | 必填   | 说明                                       |
  | -------- | --------------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
2076

Z
zhangxingxia 已提交
2077
**示例:**
Z
zhangxingxia 已提交
2078 2079 2080
  ```js
  fileio.createStream(path, mode, function(err, stream){
      // do something
Z
zengyawen 已提交
2081 2082 2083 2084 2085 2086 2087 2088 2089 2090
  });
  ```


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

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

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

2091 2092
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2093
**参数:**
H
HelloCrease 已提交
2094 2095 2096 2097
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2098

Z
zhangxingxia 已提交
2099
**返回值:**
H
HelloCrease 已提交
2100 2101
  | 参数名                | 说明        |
  | ------------------ | --------- |
Z
zengyawen 已提交
2102 2103
  | [Stream](#stream7) | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2104
**示例:**
Z
zhangxingxia 已提交
2105
  ```js
Z
zengyawen 已提交
2106 2107 2108 2109 2110 2111 2112 2113 2114 2115
  let ss = fileio.createStreamSync(path, "r+");
  ```


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

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

以异步方法基于文件描述符打开文件流,使用promise形式返回结果。

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

Z
zhangxingxia 已提交
2118
**参数:**
H
HelloCrease 已提交
2119 2120 2121 2122
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2123

Z
zhangxingxia 已提交
2124
**返回值:**
H
HelloCrease 已提交
2125 2126
  | 参数名                               | 说明        |
  | --------------------------------- | --------- |
Z
zengyawen 已提交
2127 2128
  | Promise&lt;[Stream](#stream7)&gt; | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2129
**示例:**
Z
zhangxingxia 已提交
2130 2131
  ```js
  fileio.fdopenStream(fd, mode).then(function(stream){
Z
zengyawen 已提交
2132
      console.info("openStream successfully");
Z
zhangxingxia 已提交
2133 2134 2135
  }).catch(function(err){
      console.info("openStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2136 2137 2138 2139 2140 2141 2142 2143 2144
  ```


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

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

以异步方法基于文件描述符打开文件流,使用callback形式返回结果。

2145 2146
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2147
**参数:**
H
HelloCrease 已提交
2148 2149 2150 2151 2152
  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | 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 已提交
2153

Z
zhangxingxia 已提交
2154
**示例:**
Z
zhangxingxia 已提交
2155 2156 2157
  ```js
  fileio.fdopenStream(fd, mode, function (err, stream) {
      // do something
Z
zengyawen 已提交
2158 2159 2160 2161 2162 2163 2164 2165 2166 2167
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
2170
**参数:**
H
HelloCrease 已提交
2171 2172 2173 2174
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | 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 已提交
2175

Z
zhangxingxia 已提交
2176
**返回值:**
H
HelloCrease 已提交
2177 2178
  | 参数名                | 说明        |
  | ------------------ | --------- |
Z
zengyawen 已提交
2179 2180
  | [Stream](#stream7) | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2181
**示例:**
Z
zhangxingxia 已提交
2182
  ```js
Z
zengyawen 已提交
2183 2184 2185 2186 2187 2188 2189 2190 2191 2192
  let ss = fileio.fdopenStreamSync(fd, "r+");
  ```


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

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

以异步方法基于文件描述符改变文件所有者,使用promise形式返回结果。

2193 2194
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2195
**参数:**
H
HelloCrease 已提交
2196 2197 2198 2199 2200
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待改变文件的文件描述符。 |
  | uid  | number | 是    | 文件所有者的UID。   |
  | gid  | number | 是    | 文件所有组的GID。   |
Z
zengyawen 已提交
2201

Z
zhangxingxia 已提交
2202
**返回值:**
H
HelloCrease 已提交
2203 2204
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
2205 2206
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
2207
**示例:**
Z
zhangxingxia 已提交
2208
  ```js
Z
zengyawen 已提交
2209
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2210 2211 2212 2213
  fileio.fchown(fd, stat.uid, stat.gid).then(function() {
      console.info("chown successfully");
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
Z
zengyawen 已提交
2214 2215 2216 2217 2218 2219 2220 2221 2222 2223
  });
  ```


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

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

以异步方法基于文件描述符改变文件所有者,使用callback形式返回结果。

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

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

Z
zhangxingxia 已提交
2234
**示例:**
Z
zhangxingxia 已提交
2235
  ```js
Z
zengyawen 已提交
2236 2237
  let stat = fileio.statSync(fpath);
  fileio.fchown(fd, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2238
      // do something
Z
zengyawen 已提交
2239 2240 2241 2242 2243 2244 2245 2246 2247 2248
  });
  ```


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

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

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

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

Z
zhangxingxia 已提交
2251
**参数:**
H
HelloCrease 已提交
2252 2253 2254 2255 2256
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待改变文件的文件描述符。 |
  | uid  | number | 是    | 文件所有者的UID。   |
  | gid  | number | 是    | 文件所有组的GID。   |
Z
zengyawen 已提交
2257

Z
zhangxingxia 已提交
2258
**示例:**
Z
zhangxingxia 已提交
2259
  ```js
Z
zengyawen 已提交
2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270
  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;

以异步方法基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是符号链接所指向的实际文件,使用promise形式返回结果。

2271 2272
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2273
**参数:**
H
HelloCrease 已提交
2274 2275 2276 2277 2278
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待打开文件的绝对路径。 |
  | uid  | number | 是    | 新的UID。      |
  | gid  | number | 是    | 新的GID。      |
Z
zengyawen 已提交
2279

Z
zhangxingxia 已提交
2280
**返回值:**
H
HelloCrease 已提交
2281 2282
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
2283 2284
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
2285
**示例:**
Z
zhangxingxia 已提交
2286
  ```js
Z
zengyawen 已提交
2287
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2288 2289 2290 2291 2292
  fileio.lchown(path, stat.uid, stat.gid).then(function() {
      console.info("chown successfully");
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
2293 2294 2295 2296 2297 2298 2299 2300 2301
  ```


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

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

以异步方法基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件,使用callback形式返回结果。

2302 2303
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2304
**参数:**
H
HelloCrease 已提交
2305 2306 2307 2308 2309 2310
  | 参数名      | 类型                        | 必填   | 说明              |
  | -------- | ------------------------- | ---- | --------------- |
  | path     | string                    | 是    | 待打开文件的绝对路径。     |
  | uid      | number                    | 是    | 新的UID。          |
  | gid      | number                    | 是    | 新的GID。          |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
2311

Z
zhangxingxia 已提交
2312
**示例:**
Z
zhangxingxia 已提交
2313
  ```js
Z
zengyawen 已提交
2314 2315
  let stat = fileio.statSync(path);
  fileio.lchown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2316
      // do something
Z
zengyawen 已提交
2317 2318 2319 2320 2321 2322 2323 2324 2325 2326
  });
  ```


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

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

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

2327 2328
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2329
**参数:**
H
HelloCrease 已提交
2330 2331 2332 2333 2334
  | 参数名  | 类型     | 必填   | 说明          |
  | ---- | ------ | ---- | ----------- |
  | path | string | 是    | 待打开文件的绝对路径。 |
  | uid  | number | 是    | 新的UID。      |
  | gid  | number | 是    | 新的GID。      |
Z
zengyawen 已提交
2335

Z
zhangxingxia 已提交
2336
**示例:**
Z
zhangxingxia 已提交
2337
  ```js
Z
zengyawen 已提交
2338 2339 2340 2341 2342 2343 2344 2345 2346
  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

Z
zengyawen 已提交
2347
以异步方法监听文件或者目录的变化,使用callback形式返回结果。
Z
zengyawen 已提交
2348

2349 2350
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2358
**返回值:**
H
HelloCrease 已提交
2359 2360
  | 参数名                  | 说明         |
  | -------------------- | ---------- |
Z
zengyawen 已提交
2361 2362
  | [Watcher](#watcher7) | 文件变化监听的实例。 |

Z
zhangxingxia 已提交
2363
**示例:**
Z
zhangxingxia 已提交
2364 2365 2366
  ```js
  fileio.createWatcher(filename, events, function(watcher){
      // do something
Z
zengyawen 已提交
2367 2368 2369 2370 2371 2372 2373 2374
  });
  ```


## Readout

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

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

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


## Stat

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

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

Z
zengyawen 已提交
2390
### 属性
Z
zengyawen 已提交
2391

H
HelloCrease 已提交
2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405
| 名称     | 参数类型   | 可读   | 可写   | 说明                                       |
| ------ | ------ | ---- | ---- | ---------------------------------------- |
| 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 已提交
2406 2407


Z
zengyawen 已提交
2408
### isBlockDevice
Z
zengyawen 已提交
2409

Z
zengyawen 已提交
2410
isBlockDevice(): boolean
Z
zengyawen 已提交
2411

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

2414 2415
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2416
**返回值:**
H
HelloCrease 已提交
2417 2418
  | 类型      | 说明               |
  | ------- | ---------------- |
Z
zhangxingxia 已提交
2419
  | boolean | 表示文件是否是块特殊设备。 |
Z
zengyawen 已提交
2420

Z
zhangxingxia 已提交
2421
**示例:**
Z
zhangxingxia 已提交
2422
  ```js
Z
zengyawen 已提交
2423 2424
  let isBLockDevice = fileio.statSync(path).isBlockDevice();
  ```
Z
zengyawen 已提交
2425 2426


Z
zengyawen 已提交
2427
### isCharacterDevice
Z
zengyawen 已提交
2428

Z
zengyawen 已提交
2429
isCharacterDevice(): boolean
Z
zengyawen 已提交
2430

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

2433 2434
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2435
**返回值:**
H
HelloCrease 已提交
2436 2437
  | 类型      | 说明                |
  | ------- | ----------------- |
Z
zhangxingxia 已提交
2438
  | boolean | 表示文件是否是字符特殊设备。 |
Z
zengyawen 已提交
2439

Z
zhangxingxia 已提交
2440
**示例:**
Z
zhangxingxia 已提交
2441
  ```js
Z
zengyawen 已提交
2442 2443
  let isCharacterDevice = fileio.statSync(path).isCharacterDevice();
  ```
Z
zengyawen 已提交
2444 2445


Z
zengyawen 已提交
2446
### isDirectory
Z
zengyawen 已提交
2447

Z
zengyawen 已提交
2448
isDirectory(): boolean
Z
zengyawen 已提交
2449

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

2452 2453
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2454
**返回值:**
H
HelloCrease 已提交
2455 2456
  | 类型      | 说明            |
  | ------- | ------------- |
Z
zhangxingxia 已提交
2457
  | boolean | 表示文件是否是目录。 |
Z
zengyawen 已提交
2458

Z
zhangxingxia 已提交
2459
**示例:**
Z
zhangxingxia 已提交
2460
  ```js
Z
zengyawen 已提交
2461
  let isDirectory = fileio.statSync(path).isDirectory(); 
Z
zengyawen 已提交
2462
  ```
Z
zengyawen 已提交
2463 2464


Z
zengyawen 已提交
2465
### isFIFO
Z
zengyawen 已提交
2466

Z
zengyawen 已提交
2467
isFIFO(): boolean
Z
zengyawen 已提交
2468

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

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

Z
zhangxingxia 已提交
2473
**返回值:**
H
HelloCrease 已提交
2474 2475
  | 类型      | 说明                    |
  | ------- | --------------------- |
Z
zhangxingxia 已提交
2476
  | boolean | 表示文件是否是&nbsp;FIFO。 |
Z
zengyawen 已提交
2477

Z
zhangxingxia 已提交
2478
**示例:**
Z
zhangxingxia 已提交
2479
  ```js
Z
zengyawen 已提交
2480
  let isFIFO = fileio.statSync(path).isFIFO(); 
Z
zengyawen 已提交
2481
  ```
Z
zengyawen 已提交
2482 2483


Z
zengyawen 已提交
2484
### isFile
Z
zengyawen 已提交
2485

Z
zengyawen 已提交
2486
isFile(): boolean
Z
zengyawen 已提交
2487

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

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

Z
zhangxingxia 已提交
2492
**返回值:**
H
HelloCrease 已提交
2493 2494
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
2495
  | boolean | 表示文件是否是普通文件。 |
Z
zengyawen 已提交
2496

Z
zhangxingxia 已提交
2497
**示例:**
Z
zhangxingxia 已提交
2498
  ```js
Z
zengyawen 已提交
2499
  let isFile = fileio.statSync(fpath).isFile();
Z
zengyawen 已提交
2500
  ```
Z
zengyawen 已提交
2501 2502


Z
zengyawen 已提交
2503
### isSocket
Z
zengyawen 已提交
2504

Z
zengyawen 已提交
2505
isSocket(): boolean
Z
zengyawen 已提交
2506

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

2509 2510
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2511
**返回值:**
H
HelloCrease 已提交
2512 2513
  | 类型      | 说明             |
  | ------- | -------------- |
Z
zhangxingxia 已提交
2514
  | boolean | 表示文件是否是套接字。 |
Z
zengyawen 已提交
2515

Z
zhangxingxia 已提交
2516
**示例:**
Z
zhangxingxia 已提交
2517
  ```js
Z
zengyawen 已提交
2518 2519
  let isSocket = fileio.statSync(path).isSocket(); 
  ```
Z
zengyawen 已提交
2520 2521


Z
zengyawen 已提交
2522
### isSymbolicLink
Z
zengyawen 已提交
2523

Z
zengyawen 已提交
2524
isSymbolicLink(): boolean
Z
zengyawen 已提交
2525

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

2528 2529
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2530
**返回值:**
H
HelloCrease 已提交
2531 2532
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
2533
  | boolean | 表示文件是否是符号链接。 |
Z
zengyawen 已提交
2534

Z
zhangxingxia 已提交
2535
**示例:**
Z
zhangxingxia 已提交
2536
  ```js
Z
zengyawen 已提交
2537 2538
  let isSymbolicLink = fileio.statSync(path).isSymbolicLink(); 
  ```
Z
zengyawen 已提交
2539 2540


Z
zengyawen 已提交
2541 2542 2543 2544 2545 2546 2547
## Watcher<sup>7+</sup>

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


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

2548
stop(): Promise&lt;void&gt;
Z
zengyawen 已提交
2549 2550 2551

以异步方法关闭watcher监听,使用promise形式返回结果。

2552 2553
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2554
**示例:**
Z
zhangxingxia 已提交
2555
  ```js
Z
zengyawen 已提交
2556 2557 2558 2559 2560 2561
  fileio.stop();
  ```


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

2562
stop(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
2563 2564 2565

以异步方法关闭watcher监听,使用callback形式返回结果。

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

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

Z
zhangxingxia 已提交
2573
**示例:**
Z
zhangxingxia 已提交
2574
  ```js
Z
zengyawen 已提交
2575
  fileio.stop(function(err){
Z
zhangxingxia 已提交
2576
      // do something
Z
zengyawen 已提交
2577 2578 2579 2580
  });
  ```


Z
zengyawen 已提交
2581
## Stream<sup>7+</sup>
Z
zengyawen 已提交
2582

Z
zengyawen 已提交
2583 2584 2585 2586 2587 2588 2589 2590 2591
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。


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

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

异步关闭文件流,使用promise形式返回结果。

2592 2593
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2594
**返回值:**
H
HelloCrease 已提交
2595 2596
  | 类型                  | 说明            |
  | ------------------- | ------------- |
Z
zengyawen 已提交
2597 2598
  | Promise&lt;void&gt; | 表示异步关闭文件流的结果。 |

Z
zhangxingxia 已提交
2599
**示例:**
Z
zhangxingxia 已提交
2600
  ```js
Z
zengyawen 已提交
2601
  let ss= fileio.createStreamSync(path);
Z
zhangxingxia 已提交
2602 2603 2604 2605 2606
  ss.close().then(function(){
      console.info("close fileStream successfully");
  }).catch(function(err){
      console.info("close fileStream  failed with error:"+ err);
  });
Z
zengyawen 已提交
2607 2608 2609 2610 2611 2612 2613 2614 2615
  ```


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

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

异步关闭文件流,使用callback形式返回结果。

2616 2617
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2623
**示例:**
Z
zhangxingxia 已提交
2624
  ```js
Z
zengyawen 已提交
2625 2626
  let ss= fileio.createStreamSync(path);
  ss.close(function (err) {
Z
zhangxingxia 已提交
2627
      // do something
Z
zengyawen 已提交
2628 2629
  });
  ```
Z
zengyawen 已提交
2630 2631


2632
### closeSync
Z
zengyawen 已提交
2633

Z
zengyawen 已提交
2634
closeSync(): void
Z
zengyawen 已提交
2635

Z
zengyawen 已提交
2636
同步关闭文件流。
Z
zengyawen 已提交
2637

2638 2639
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2640
**示例:**
Z
zhangxingxia 已提交
2641
  ```js
Z
zengyawen 已提交
2642 2643 2644
  let ss= fileio.createStreamSync(path);
  ss.closeSync();
  ```
Z
zengyawen 已提交
2645 2646


Z
zengyawen 已提交
2647 2648 2649 2650 2651 2652
### flush<sup>7+</sup>

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

异步刷新文件流,使用promise形式返回结果。

2653 2654
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2655
**返回值:**
H
HelloCrease 已提交
2656 2657
  | 类型                  | 说明            |
  | ------------------- | ------------- |
Z
zengyawen 已提交
2658 2659
  | Promise&lt;void&gt; | 表示异步刷新文件流的结果。 |

Z
zhangxingxia 已提交
2660
**示例:**
Z
zhangxingxia 已提交
2661
  ```js
Z
zengyawen 已提交
2662
  let ss= fileio.createStreamSync(path);
Z
zhangxingxia 已提交
2663 2664 2665 2666 2667
  ss.flush().then(function (){
      console.info("flush successfully");
  }).catch(function(err){
      console.info("flush failed with error:"+ err);
  });
Z
zengyawen 已提交
2668 2669 2670 2671 2672 2673 2674 2675 2676
  ```


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

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

异步刷新文件流,使用callback形式返回结果。

2677 2678
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2684
**示例:**
Z
zhangxingxia 已提交
2685
  ```js
Z
zengyawen 已提交
2686 2687
  let ss= fileio.createStreamSync(path);
  ss.flush(function (err) {
Z
zhangxingxia 已提交
2688
      // do something
Z
zengyawen 已提交
2689 2690 2691 2692
  });
  ```


Z
zengyawen 已提交
2693
### flushSync<sup>7+</sup>
Z
zengyawen 已提交
2694

Z
zengyawen 已提交
2695
flushSync(): void
Z
zengyawen 已提交
2696

Z
zengyawen 已提交
2697
同步刷新文件流。
Z
zengyawen 已提交
2698

2699 2700
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2701
**示例:**
Z
zhangxingxia 已提交
2702
  ```js
Z
zengyawen 已提交
2703 2704 2705
  let ss= fileio.createStreamSync(path);
  ss.flushSync();
  ```
Z
zengyawen 已提交
2706 2707


Z
zengyawen 已提交
2708 2709
### write<sup>7+</sup>

2710 2711 2712 2713 2714 2715
write(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
2716 2717 2718

以异步方法将数据写入流文件,使用promise形式返回结果。

2719 2720
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2727
**返回值:**
H
HelloCrease 已提交
2728 2729
  | 类型                    | 说明       |
  | --------------------- | -------- |
Z
zengyawen 已提交
2730 2731
  | Promise&lt;number&gt; | 实际写入的长度。 |

Z
zhangxingxia 已提交
2732
**示例:**
Z
zhangxingxia 已提交
2733
  ```js
Z
zengyawen 已提交
2734
  let ss= fileio.createStreamSync(fpath, "r+");
Z
zhangxingxia 已提交
2735
  ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
Z
zhangxingxia 已提交
2736
      console.info("write successfully and size is:"+ number);
Z
zhangxingxia 已提交
2737 2738 2739
  }).catch(function(err){
      console.info("write failed with error:"+ err);
  });
Z
zengyawen 已提交
2740 2741 2742 2743 2744
  ```


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

2745 2746 2747 2748 2749 2750
write(buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
2751 2752 2753

以异步方法将数据写入流文件,使用callback形式返回结果。

2754 2755
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2763
**示例:**
Z
zhangxingxia 已提交
2764
  ```js
Z
zengyawen 已提交
2765 2766
  let ss= fileio.createStreamSync(fpath, "r+");
  ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
Z
zhangxingxia 已提交
2767
      if (bytesWritten) {
Z
zhangxingxia 已提交
2768
         // do something
Z
zhangxingxia 已提交
2769
         console.info("write successfully and size is:"+ bytesWritten);
Z
zengyawen 已提交
2770 2771 2772 2773 2774
      }
  });
  ```


Z
zengyawen 已提交
2775
### writeSync<sup>7+</sup>
Z
zengyawen 已提交
2776

2777 2778 2779 2780 2781 2782
writeSync(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
2783

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

2786 2787
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2794
**返回值:**
H
HelloCrease 已提交
2795 2796
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
2797
  | number | 实际写入的长度。 |
Z
zengyawen 已提交
2798

Z
zhangxingxia 已提交
2799
**示例:**
Z
zhangxingxia 已提交
2800
  ```js
Z
zengyawen 已提交
2801
  let ss= fileio.createStreamSync(fpath,"r+");
Z
zengyawen 已提交
2802 2803 2804 2805 2806 2807
  let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});
  ```


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

2808 2809 2810 2811 2812
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
2813 2814 2815

以异步方法从流文件读取数据,使用promise形式返回结果。

2816 2817
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2824
**返回值:**
H
HelloCrease 已提交
2825 2826
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
2827
  | Promise&lt;[ReadOut](#readout)&gt; | 读取的结果。 |
Z
zengyawen 已提交
2828

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


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

2843 2844 2845 2846 2847
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
2848 2849 2850

以异步方法从流文件读取数据,使用callback形式返回结果。

2851 2852
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2860
**示例:**
Z
zhangxingxia 已提交
2861
  ```js
Z
zengyawen 已提交
2862 2863
  let ss = fileio.createStreamSync(fpath, "r+");
  ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
Z
zhangxingxia 已提交
2864 2865 2866
      if (readOut) {
          console.info("read data successfully");
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
2867 2868
      }
  });
Z
zengyawen 已提交
2869
  ```
Z
zengyawen 已提交
2870 2871


Z
zengyawen 已提交
2872
### readSync<sup>7+</sup>
Z
zengyawen 已提交
2873

2874 2875 2876 2877 2878
readSync(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): number
Z
zengyawen 已提交
2879 2880 2881

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

2882 2883
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2884
**参数:**
Z
zhangxingxia 已提交
2885

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

Z
zhangxingxia 已提交
2891
**返回值:**
Z
zhangxingxia 已提交
2892

H
HelloCrease 已提交
2893 2894
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
2895
  | number | 实际读取的长度。 |
Z
zhangxingxia 已提交
2896

Z
zhangxingxia 已提交
2897
**示例:**
Z
zhangxingxia 已提交
2898
  ```js
Z
zengyawen 已提交
2899
  let ss = fileio.createStreamSync(fpath, "r+");
Z
zengyawen 已提交
2900
  let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});
Z
zengyawen 已提交
2901
  ```
Z
zengyawen 已提交
2902 2903


Z
zengyawen 已提交
2904
## Dir
Z
zengyawen 已提交
2905

Z
zengyawen 已提交
2906 2907 2908 2909 2910 2911 2912 2913 2914
管理目录,在调用Dir的方法前,需要先通过[opendir()](#fileioopendir)方法(同步或异步)来构建一个Dir实例。


### read

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

异步读取下一个目录项,使用promise形式返回结果。

2915 2916
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2917
**返回值:**
H
HelloCrease 已提交
2918 2919
  | 类型                               | 说明            |
  | -------------------------------- | ------------- |
Z
zengyawen 已提交
2920 2921
  | Promise&lt;[Dirent](#dirent)&gt; | 表示异步读取目录项的结果。 |

Z
zhangxingxia 已提交
2922
**示例:**
Z
zhangxingxia 已提交
2923
  ```js
H
HelloCrease 已提交
2924
  let dir = fileio.opendirSync(path);
Z
zhangxingxia 已提交
2925
  dir.read().then(function (dirent){
Z
zhangxingxia 已提交
2926
      console.log("read successfully:"+JSON.stringify(dirent));
Z
zhangxingxia 已提交
2927 2928 2929
  }).catch(function(err){
      console.info("read failed with error:"+ err);
  });
Z
zengyawen 已提交
2930 2931 2932 2933 2934 2935 2936 2937 2938
  ```


### read

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

异步读取下一个目录项,使用callback形式返回结果。

2939 2940
**系统能力**:SystemCapability.FileManagement.File.FileIO

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

Z
zhangxingxia 已提交
2946
**示例:**
Z
zhangxingxia 已提交
2947
  ```js
H
HelloCrease 已提交
2948
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2949
  dir.read(function (err, dirent) {
Z
zhangxingxia 已提交
2950
      if (dirent) {
Z
zhangxingxia 已提交
2951
          // do something
Z
zhangxingxia 已提交
2952
          console.log("read successfully:"+JSON.stringify(dirent));
Z
zengyawen 已提交
2953 2954 2955
      }
  });
  ```
Z
zengyawen 已提交
2956 2957


Z
zengyawen 已提交
2958
### readSync
Z
zengyawen 已提交
2959

Z
zengyawen 已提交
2960
readSync(): Dirent
Z
zengyawen 已提交
2961

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

2964 2965
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2966
**返回值:**
H
HelloCrease 已提交
2967 2968
  | 类型                | 说明       |
  | ----------------- | -------- |
Z
zengyawen 已提交
2969
  | [Dirent](#dirent) | 表示一个目录项。 |
Z
zengyawen 已提交
2970

Z
zhangxingxia 已提交
2971
**示例:**
Z
zhangxingxia 已提交
2972
  ```js
H
HelloCrease 已提交
2973
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2974 2975
  let dirent = dir.readSync();
  ```
Z
zengyawen 已提交
2976 2977


Z
zengyawen 已提交
2978
### closeSync
Z
zengyawen 已提交
2979

Z
zengyawen 已提交
2980
closeSync(): void
Z
zengyawen 已提交
2981

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

2984 2985
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2986
**示例:**
Z
zhangxingxia 已提交
2987
  ```js
H
HelloCrease 已提交
2988
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2989 2990
  dir.closeSync();
  ```
Z
zengyawen 已提交
2991 2992


Z
zengyawen 已提交
2993
## Dirent
Z
zengyawen 已提交
2994

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

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

Z
zengyawen 已提交
2999
### 属性
Z
zengyawen 已提交
3000

H
HelloCrease 已提交
3001 3002 3003
| 名称   | 参数类型   | 可读   | 可写   | 说明      |
| ---- | ------ | ---- | ---- | ------- |
| name | string | 是    | 否    | 目录项的名称。 |
Z
zengyawen 已提交
3004 3005


Z
zengyawen 已提交
3006
### isBlockDevice
Z
zengyawen 已提交
3007

Z
zengyawen 已提交
3008
isBlockDevice(): boolean
Z
zengyawen 已提交
3009

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

3012 3013
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3014
**返回值:**
H
HelloCrease 已提交
3015 3016
  | 类型      | 说明               |
  | ------- | ---------------- |
Z
zhangxingxia 已提交
3017
  | boolean | 表示当前目录项是否是块特殊设备。 |
Z
zengyawen 已提交
3018

Z
zhangxingxia 已提交
3019
**示例:**
Z
zhangxingxia 已提交
3020
  ```js
H
HelloCrease 已提交
3021
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3022 3023
  let isBLockDevice = dir.readSync().isBlockDevice();
  ```
Z
zengyawen 已提交
3024 3025


Z
zengyawen 已提交
3026
### isCharacterDevice
Z
zengyawen 已提交
3027

Z
zengyawen 已提交
3028
isCharacterDevice(): boolean
Z
zengyawen 已提交
3029

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

3032 3033
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3034
**返回值:**
H
HelloCrease 已提交
3035 3036
  | 类型      | 说明                |
  | ------- | ----------------- |
Z
zhangxingxia 已提交
3037
  | boolean | 表示当前目录项是否是字符特殊设备。 |
Z
zengyawen 已提交
3038

Z
zhangxingxia 已提交
3039
**示例:**
Z
zhangxingxia 已提交
3040
  ```js
H
HelloCrease 已提交
3041
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3042 3043
  let isCharacterDevice = dir.readSync().isCharacterDevice(); 
  ```
Z
zengyawen 已提交
3044 3045


Z
zengyawen 已提交
3046
### isDirectory
Z
zengyawen 已提交
3047

Z
zengyawen 已提交
3048
isDirectory(): boolean
Z
zengyawen 已提交
3049

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

3052 3053
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3054
**返回值:**
H
HelloCrease 已提交
3055 3056
  | 类型      | 说明            |
  | ------- | ------------- |
Z
zhangxingxia 已提交
3057
  | boolean | 表示当前目录项是否是目录。 |
Z
zengyawen 已提交
3058

Z
zhangxingxia 已提交
3059
**示例:**
Z
zhangxingxia 已提交
3060
  ```js
H
HelloCrease 已提交
3061
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3062 3063
  let isDirectory = dir.readSync().isDirectory(); 
  ```
Z
zengyawen 已提交
3064 3065


Z
zengyawen 已提交
3066
### isFIFO
Z
zengyawen 已提交
3067

Z
zengyawen 已提交
3068
isFIFO(): boolean
Z
zengyawen 已提交
3069

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

3072 3073
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3074
**返回值:**
H
HelloCrease 已提交
3075 3076
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
3077
  | boolean | 表示当前目录项是否是FIFO。 |
Z
zengyawen 已提交
3078

Z
zhangxingxia 已提交
3079
**示例:**
Z
zhangxingxia 已提交
3080
  ```js
H
HelloCrease 已提交
3081
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3082 3083
  let isFIFO = dir.readSync().isFIFO(); 
  ```
Z
zengyawen 已提交
3084 3085


Z
zengyawen 已提交
3086
### isFile
Z
zengyawen 已提交
3087

Z
zengyawen 已提交
3088
isFile(): boolean
Z
zengyawen 已提交
3089

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

3092 3093
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3094
**返回值:**
H
HelloCrease 已提交
3095 3096
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
3097
  | boolean | 表示当前目录项是否是普通文件。 |
Z
zengyawen 已提交
3098

Z
zhangxingxia 已提交
3099
**示例:**
Z
zhangxingxia 已提交
3100
  ```js
H
HelloCrease 已提交
3101
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3102 3103
  let isFile = dir.readSync().isFile(); 
  ```
Z
zengyawen 已提交
3104 3105


Z
zengyawen 已提交
3106
### isSocket
Z
zengyawen 已提交
3107

Z
zengyawen 已提交
3108
isSocket(): boolean
Z
zengyawen 已提交
3109

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

3112 3113
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3114
**返回值:**
H
HelloCrease 已提交
3115 3116
  | 类型      | 说明             |
  | ------- | -------------- |
Z
zhangxingxia 已提交
3117
  | boolean | 表示当前目录项是否是套接字。 |
Z
zengyawen 已提交
3118

Z
zhangxingxia 已提交
3119
**示例:**
Z
zhangxingxia 已提交
3120
  ```js
Z
zengyawen 已提交
3121 3122 3123
  let dir = fileio.opendirSync(dpath);
  let isSocket = dir.readSync().isSocket(); 
  ```
Z
zengyawen 已提交
3124 3125


Z
zengyawen 已提交
3126
### isSymbolicLink
Z
zengyawen 已提交
3127

Z
zengyawen 已提交
3128
isSymbolicLink(): boolean
Z
zengyawen 已提交
3129

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

3132 3133
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3134
**返回值:**
H
HelloCrease 已提交
3135 3136
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
3137
  | boolean | 表示当前目录项是否是符号链接。 |
Z
zengyawen 已提交
3138

Z
zhangxingxia 已提交
3139
**示例:**
Z
zhangxingxia 已提交
3140
  ```js
H
HelloCrease 已提交
3141
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3142 3143
  let isSymbolicLink = dir.readSync().isSymbolicLink();
  ```