1# @ohos.file.fileAccess (User File Access and Management) 2 3The **fileAccess** module is a framework for accessing and operating user files based on the Extension ability mechanism. This module interacts with diverse file management services, such as the media library and external storage management service, and provides a set of file access and management APIs for system applications. The media library service allows access to user files on local devices and distributed devices. The external storage management service allows access to the user files stored on devices such as shared disks, USB flash drives, and SD cards. 4 5>**NOTE** 6> 7>- The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8>- The APIs provided by this module are system APIs and cannot be called by third-party applications. Currently, the APIs can be called only by **FilePicker** and **Files**. 9>- The APIs of this module support processing of error codes. For details, see [File Management Error Codes](../errorcodes/errorcode-filemanagement.md). 10 11## Modules to Import 12 13```js 14import fileAccess from '@ohos.file.fileAccess'; 15``` 16 17## fileAccess.getFileAccessAbilityInfo 18 19getFileAccessAbilityInfo( ) : Promise<Array<Want>> 20 21Obtains information about all wants with **extension** set to **fileAccess** in the system. A want is a basic communication component used to start services. This API uses a promise to return the result. 22 23**System capability**: SystemCapability.FileManagement.UserFileService 24 25**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 26 27**Return value** 28 29| Type| Description| 30| --- | -- | 31| Promise<Array<Want>> | Promise used to return the **want** information obtained.| 32 33**Example** 34 35 ```js 36 async getFileAccessAbilityInfo() { 37 let wantInfos = []; 38 try { 39 wantInfos = await fileAccess.getFileAccessAbilityInfo(); 40 console.log("getFileAccessAbilityInfo data " + JSON.stringify(wantInfos)); 41 } catch (error) { 42 console.error("getFileAccessAbilityInfo failed, errCode:" + error.code + ", errMessage:" + error.message); 43 } 44 } 45 ``` 46 47## fileAccess.getFileAccessAbilityInfo 48 49getFileAccessAbilityInfo(callback: AsyncCallback<Array<Want>>): void; 50 51Obtains information about all wants with **extension** set to **fileAccess** in the system. A want is a basic communication component used to start services. This API uses an asynchronous callback to return the result. 52 53**System capability**: SystemCapability.FileManagement.UserFileService 54 55**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 56 57**Parameters** 58 59| Name| Type| Mandatory| Description| 60| --- | --- | --- | -- | 61| callback | AsyncCallback<Array<Want>> | Yes| Promise used to return the **want** information obtained.| 62 63**Example** 64 65 ```js 66 async getFileAccessAbilityInfo() { 67 try { 68 fileAccess.getFileAccessAbilityInfo(function (err, wantInfos) { 69 if (err) { 70 console.error("Failed to getFileAccessAbilityInfo in async, errCode:" + err.code + ", errMessage:" + err.message); 71 return; 72 } 73 console.log("getFileAccessAbilityInfo data " + JSON.stringify(wantInfos)); 74 }); 75 } catch (error) { 76 console.error("getFileAccessAbilityInfo failed, errCode:" + error.code + ", errMessage:" + error.message); 77 } 78 } 79 ``` 80 81## fileAccess.createFileAccessHelper 82 83createFileAccessHelper(context: Context, wants: Array<Want>) : FileAccessHelper 84 85Synchronously creates a **Helper** object to connect to the specified wants. The **Helper** object provides file access and management capabilities. 86 87**System capability**: SystemCapability.FileManagement.UserFileService 88 89**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 90 91**Parameters** 92 93| Name| Type| Mandatory| Description| 94| --- | --- | --- | -- | 95| context | Context | Yes| Context of the ability.| 96| wants | Array<Want> | Yes| Wants to connect.| 97 98**Return value** 99 100| Type| Description| 101| --- | -- | 102| FileAccessHelper | **Helper** object created.| 103 104**Example** 105 106 ```js 107 createFileAccessHelper() { 108 let fileAccessHelper = null; 109 / / Obtain wantInfos by using getFileAccessAbilityInfo(). 110 // Create a helper object to interact with the media library service only. 111 let wantInfos = [ 112 { 113 "bundleName": "com.ohos.medialibrary.medialibrarydata", 114 "abilityName": "FileExtensionAbility", 115 }, 116 ] 117 try { 118 // this.context is passed by EntryAbility. 119 fileAccessHelper = fileAccess.createFileAccessHelper(this.context, wantInfos); 120 if (!fileAccessHelper) 121 console.error("createFileAccessHelper interface returns an undefined object"); 122 } catch (error) { 123 console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message); 124 } 125 } 126 ``` 127 128## fileAccess.createFileAccessHelper 129 130createFileAccessHelper(context: Context) : FileAccessHelper 131 132Synchronously creates a **Helper** object to connect to all file management services in the system. 133 134**System capability**: SystemCapability.FileManagement.UserFileService 135 136**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 137 138**Parameters** 139 140| Name| Type| Mandatory| Description| 141| --- | --- | --- | -- | 142| context | Context | Yes| Context of the ability.| 143 144**Return value** 145 146| Type| Description| 147| --- | -- | 148| FileAccessHelper | **Helper** object created.| 149 150**Example** 151 152 ```js 153 createFileAccessHelper() { 154 let fileAccessHelperAllServer = null; 155 // Create a Helper object to interact with all file management services configured with fileAccess in the system. 156 try { 157 // this.context is passed by EntryAbility. 158 fileAccessHelperAllServer = fileAccess.createFileAccessHelper(this.context); 159 if (!fileAccessHelperAllServer) 160 console.error("createFileAccessHelper interface returns an undefined object"); 161 } catch (error) { 162 console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message); 163 } 164 } 165 ``` 166 167## FileAccessHelper.getRoots 168 169getRoots( ) : Promise<RootIterator> 170 171Obtains information about the device root nodes of the file management service type connected to the **Helper** object. This API uses a promise to return a **RootIterator** object, which returns [RootInfo](#rootinfo) by using [next()](#rootiteratornext). 172 173**System capability**: SystemCapability.FileManagement.UserFileService 174 175**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 176 177**Return value** 178 179| Type| Description| 180| --- | -- | 181| Promise<RootIterator> | Promise used to return the **RootIterator** object obtained.| 182 183**Example** 184 185 ```js 186 async getRoots() { 187 let rootIterator = null; 188 let rootinfos = []; 189 let isDone = false; 190 try { 191 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 192 rootIterator = await fileAccessHelper.getRoots(); 193 if (!rootIterator) { 194 console.error("getRoots interface returns an undefined object"); 195 return; 196 } 197 while (!isDone) { 198 let result = rootIterator.next(); 199 console.log("next result = " + JSON.stringify(result)); 200 isDone = result.done; 201 if (!isDone) 202 rootinfos.push(result.value); 203 } 204 } catch (error) { 205 console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); 206 } 207 } 208 ``` 209 210## FileAccessHelper.getRoots 211 212getRoots(callback:AsyncCallback<RootIterator>) : void; 213 214Obtains information about the device root nodes of the file management service type connected to the **Helper** object. This API uses an asynchronous callback to return the result. 215 216The callback has a **RootIterator** object, which returns [RootInfo](#rootinfo) through [next()](#rootiteratornext). 217 218**System capability**: SystemCapability.FileManagement.UserFileService 219 220**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 221 222**Parameters** 223 224| Name| Type| Mandatory| Description| 225| --- | --- | --- | -- | 226| callback | AsyncCallback<RootIterator> | Yes| Promise used to return the **RootIterator** object obtained.| 227 228**Example** 229 230 ```js 231 async getRoots() { 232 let rootinfos = []; 233 let isDone = false; 234 try { 235 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 236 fileAccessHelper.getRoots(function (err, rootIterator) { 237 if (err) { 238 console.error("Failed to getRoots in async, errCode:" + err.code + ", errMessage:" + err.message); 239 return; 240 } 241 while (!isDone) { 242 let result = rootIterator.next(); 243 console.log("next result = " + JSON.stringify(result)); 244 isDone = result.done; 245 if (!isDone) 246 rootinfos.push(result.value); 247 } 248 }); 249 } catch (error) { 250 console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); 251 } 252 } 253 ``` 254 255## RootInfo.listfile 256 257listFile(filter?: Filter) : FileIterator 258 259Synchronously obtains the **FileIterator** object of the first-level files (directory) matching the conditions of the filter from the device root node. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext). 260 261**System capability**: SystemCapability.FileManagement.UserFileService 262 263**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 264 265**Parameters** 266 267| Name| Type| Mandatory| Description| 268| --- | --- | -- | -- | 269| filter | Filter | No| **Filter** object. | 270 271 272**Return value** 273 274| Type| Description| 275| --- | -- | 276| FileIterator | **FileIterator** object obtained.| 277 278**Example** 279 280 ```js 281 // Obtain rootInfos by using getRoots(). 282 // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; 283 let rootInfo = rootinfos[0]; 284 let fileInfos = []; 285 let isDone = false; 286 try { 287 let fileIterator = rootInfo.listFile(); 288 // listFile contains the filter implementation. 289 // let fileIterator = rootInfo.listFile(filter); 290 if (!fileIterator) { 291 console.error("listFile interface returns an undefined object"); 292 return; 293 } 294 while (!isDone) { 295 let result = fileIterator.next(); 296 console.log("next result = " + JSON.stringify(result)); 297 isDone = result.done; 298 if (!isDone) 299 fileInfos.push(result.value); 300 } 301 } catch (error) { 302 console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message); 303 } 304 ``` 305 306## RootInfo.scanFile 307 308scanFile(filter?: Filter) : FileIterator 309 310Recursively obtains the **FileIterator** object of the files matching the conditions of the filter from the device root node synchronously. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext). 311 312**System capability**: SystemCapability.FileManagement.UserFileService 313 314**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 315 316**Parameters** 317 318| Name| Type| Mandatory| Description| 319| --- | --- | -- | -- | 320| filter | Filter | No| **Filter** object. | 321 322**Return value** 323 324| Type| Description| 325| --- | -- | 326| FileIterator | **FileIterator** object obtained.| 327 328**Example** 329 330 ```js 331 // Obtain rootInfos by using getRoots(). 332 // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; 333 let rootInfo = rootInfos[0]; 334 let fileInfos = []; 335 let isDone = false; 336 try { 337 let fileIterator = rootInfo.scanFile(); 338 // scanFile contains the filter implementation. 339 // let fileIterator = rootInfo.scanFile(filter); 340 if (!fileIterator) { 341 console.error("scanFile interface returns undefined object"); 342 return; 343 } 344 while (!isDone) { 345 let result = fileIterator.next(); 346 console.log("next result = " + JSON.stringify(result)); 347 isDone = result.done; 348 if (!isDone) 349 fileInfos.push(result.value); 350 } 351 } catch (error) { 352 console.error("scanFile failed, errCode:" + error.code + ", errMessage:" + error.message); 353 } 354 ``` 355 356## FileInfo.listfile 357 358listFile(filter?: Filter) : FileIterator 359 360Synchronously obtains the **FileIterator** object of the next-level files (directories) matching the conditions of the filter from a directory. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext). 361 362**System capability**: SystemCapability.FileManagement.UserFileService 363 364**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 365 366**Parameters** 367 368| Name| Type| Mandatory| Description| 369| --- | --- | -- | -- | 370| filter | Filter | No| **Filter** object. | 371 372**Return value** 373 374| Type| Description| 375| --- | -- | 376| FileIterator | **FileIterator** object obtained.| 377 378**Example** 379 380 ```js 381 // fileInfoDir specifies the target directory. 382 // let filter = { suffix : [".txt", ".jpg", ".xlsx"] }; 383 let fileInfoDir = fileInfos[0]; 384 let subfileInfos = []; 385 let isDone = false; 386 try { 387 let fileIterator = fileInfoDir.listFile(); 388 // listFile contains the filter implementation. 389 // let fileIterator = rootInfo.listFile(filter); 390 if (!fileIterator) { 391 console.error("listFile interface returns an undefined object"); 392 return; 393 } 394 while (!isDone) { 395 let result = fileIterator.next(); 396 console.log("next result = " + JSON.stringify(result)); 397 isDone = result.done; 398 if (!isDone) 399 subfileInfos.push(result.value); 400 } 401 } catch (error) { 402 console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message); 403 } 404 ``` 405 406## FileInfo.scanfile 407 408scanFile(filter?: Filter) : FileIterator; 409 410Recursively obtains the **FileIterator** object of the files matching the conditions of the filter from a directory synchronously. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext). 411 412**System capability**: SystemCapability.FileManagement.UserFileService 413 414**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 415 416**Parameters** 417 418| Name| Type| Mandatory| Description| 419| --- | --- | -- | -- | 420| filter | Filter | No| **Filter** object. | 421 422 423**Return value** 424 425| Type| Description| 426| --- | -- | 427| FileIterator | **FileIterator** object obtained.| 428 429**Example** 430 431 ```js 432 // fileInfoDir specifies the target directory. 433 // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; 434 let fileInfoDir = fileInfos[0]; 435 let subfileInfos = []; 436 let isDone = false; 437 try { 438 let fileIterator = fileInfoDir.scanFile(); 439 // scanFile contains the filter implementation. 440 // let fileIterator = rootInfo.scanFile(filter); 441 if (!fileIterator) { 442 console.error("scanFile interface returns an undefined object"); 443 return; 444 } 445 while (!isDone) { 446 let result = fileIterator.next(); 447 console.log("next result = " + JSON.stringify(result)); 448 isDone = result.done; 449 if (!isDone) 450 subfileInfos.push(result.value); 451 } 452 } catch (error) { 453 console.error("scanFile failed, errCode:" + error.code + ", errMessage:" + error.message); 454 } 455 ``` 456 457## FileAccessHelper.createFile 458 459createFile(uri: string, displayName: string) : Promise<string> 460 461Creates a file in a directory. This API uses a promise to return the result. 462 463**System capability**: SystemCapability.FileManagement.UserFileService 464 465**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 466 467**Parameters** 468 469| Name| Type| Mandatory| Description| 470| --- | --- | --- | -- | 471| uri | string | Yes| URI of the parent directory for the file to create.| 472| displayName | string | Yes| Name of the file to create. By default, the name of a local file must contain the file name extension.| 473 474**Return value** 475 476| Type| Description| 477| --- | -- | 478| Promise<string> | Promise used to return the URI of the file created.| 479 480**Example** 481 482 ```js 483 // The media library URI is used as an example. 484 // In the sample code, sourceUri indicates the Download directory. The URI is the URI in fileInfo. 485 // You can use the URI obtained. 486 let sourceUri = "datashare:///media/file/6"; 487 let displayName = "file1" 488 let fileUri = null; 489 try { 490 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 491 fileUri = await fileAccessHelper.createFile(sourceUri, displayName) 492 if (!fileUri) { 493 console.error("createFile return undefined object"); 494 return; 495 } 496 console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri)); 497 } catch (error) { 498 console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message); 499 }; 500 ``` 501 502## FileAccessHelper.createFile 503 504createFile(uri: string, displayName: string, callback: AsyncCallback<string>) : void; 505 506Creates a file in a directory. This API uses an asynchronous callback to return the result. 507 508**System capability**: SystemCapability.FileManagement.UserFileService 509 510**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 511 512**Parameters** 513 514| Name| Type| Mandatory| Description| 515| --- | --- | --- | -- | 516| uri | string | Yes| URI of the parent directory for the file to create.| 517| displayName | string | Yes| Name of the file to create. By default, the name of a local file must contain the file name extension.| 518| callback | AsyncCallback<string> | Yes| Promise used to return the URI of the file created.| 519 520**Example** 521 522 ```js 523 // The media library URI is used as an example. 524 // In the sample code, sourceUri indicates the Download directory. The URI is the URI in fileInfo. 525 // You can use the URI obtained. 526 let sourceUri = "datashare:///media/file/6"; 527 let displayName = "file1" 528 try { 529 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 530 fileAccessHelper.createFile(sourceUri, displayName, function (err, fileUri) { 531 if (err) { 532 console.error("Failed to createFile in async, errCode:" + err.code + ", errMessage:" + err.message); 533 return; 534 } 535 console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri)); 536 }); 537 } catch (error) { 538 console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message); 539 }; 540 ``` 541 542## FileAccessHelper.mkDir 543 544mkDir(parentUri: string, displayName: string) : Promise<string> 545 546Creates a directory. This API uses a promise to return the result. 547 548**System capability**: SystemCapability.FileManagement.UserFileService 549 550**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 551 552**Parameters** 553 554| Name| Type| Mandatory| Description| 555| --- | --- | --- | -- | 556| parentUri | string | Yes| URI of the parent directory for the directory to create.| 557| displayName | string | Yes| Name of the directory to create.| 558 559**Return value** 560 561| Type| Description| 562| --- | -- | 563| Promise<string> | Promise used to return the URI of the directory created.| 564 565**Example** 566 567 ```js 568 // The media library URI is used as an example. 569 // In the sample code, sourceUri indicates the Download directory. The URI is the URI in fileInfo. 570 // You can use the URI obtained. 571 let sourceUri = "datashare:///media/file/6"; 572 let dirName = "dirTest" 573 let dirUri = null; 574 try { 575 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 576 dirUri = await fileAccessHelper.mkDir(sourceUri, dirName) 577 if (!dirUri) { 578 console.error("mkDir return undefined object"); 579 return; 580 } 581 console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri)); 582 } catch (error) { 583 console.error("mkDir failed, errCode:" + error.code + ", errMessage:" + error.message); 584 }; 585 ``` 586 587## FileAccessHelper.mkDir 588 589mkDir(parentUri: string, displayName: string, callback: AsyncCallback<string>) : void; 590 591Creates a directory. This API uses an asynchronous callback to return the result. 592 593**System capability**: SystemCapability.FileManagement.UserFileService 594 595**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 596 597**Parameters** 598 599| Name| Type| Mandatory| Description| 600| --- | --- | --- | -- | 601| parentUri | string | Yes| URI of the parent directory for the directory to create.| 602| displayName | string | Yes| Name of the directory to create.| 603| callback | AsyncCallback<string> | Yes| Promise used to return the URI of the directory created.| 604 605**Example** 606 607 ```js 608 // The media library URI is used as an example. 609 // In the sample code, sourceUri indicates the Download directory. The URI is the URI in fileInfo. 610 // You can use the URI obtained. 611 let sourceUri = "datashare:///media/file/6"; 612 let dirName = "dirTest" 613 try { 614 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 615 fileAccessHelper.mkDir(sourceUri, dirName, function (err, dirUri) { 616 if (err) { 617 console.error("Failed to mkDir in async, errCode:" + err.code + ", errMessage:" + err.message); 618 return; 619 } 620 console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri)); 621 }); 622 } catch (error) { 623 console.error("mkDir failed, errCode:" + error.code + ", errMessage:" + error.message); 624 }; 625 ``` 626 627## FileAccessHelper.openFile 628 629openFile(uri: string, flags: OPENFLAGS) : Promise<number> 630 631Opens a file. This API uses a promise to return the result. 632 633**System capability**: SystemCapability.FileManagement.UserFileService 634 635**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 636 637**Parameters** 638 639| Name| Type| Mandatory| Description| 640| --- | --- | --- | -- | 641| uri | string | Yes| URI of the file to open.| 642| flags | [OPENFLAGS](#openflags) | Yes| File open mode.| 643 644**Return value** 645 646| Type| Description| 647| --- | -- | 648| Promise<number> | Promise used to return the file descriptor of the file opened.| 649 650**Example** 651 652 ```js 653 // The media library URI is used as an example. 654 //In the sample code, targetUri indicates a file in the Download directory. The URI is the URI in fileInfo. 655 // You can use the URI obtained. 656 let targetUri = "datashare:///media/file/100"; 657 try { 658 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 659 let fd = await fileAccessHelper.openFile(targetUri, fileAccess.OPENFLAGS.READ); 660 } catch (error) { 661 console.error("openFile failed, errCode:" + error.code + ", errMessage:" + error.message); 662 }; 663 ``` 664 665## FileAccessHelper.openFile 666 667openFile(uri: string, flags: OPENFLAGS, callback: AsyncCallback<number>) : void; 668 669Opens a file. This API uses an asynchronous callback to return the result. 670 671**System capability**: SystemCapability.FileManagement.UserFileService 672 673**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 674 675**Parameters** 676 677| Name| Type| Mandatory| Description| 678| --- | --- | --- | -- | 679| uri | string | Yes| URI of the file to open.| 680| flags | [OPENFLAGS](#openflags) | Yes| File open mode.| 681| callback | AsyncCallback<number> | Yes| Callback invoked to return the file descriptor of the file opened.| 682 683**Example** 684 685 ```js 686 // The media library URI is used as an example. 687 //In the sample code, targetUri indicates a file in the Download directory. The URI is the URI in fileInfo. 688 // You can use the URI obtained. 689 let targetUri = "datashare:///media/file/100"; 690 try { 691 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 692 fileAccessHelper.openFile(targetUri, fileAccess.OPENFLAGS.READ, function (err, fd) { 693 if (err) { 694 console.error("Failed to openFile in async, errCode:" + err.code + ", errMessage:" + err.message); 695 return; 696 } 697 console.log("openFile sucess, fd: " + fd); 698 }); 699 } catch (error) { 700 console.error("openFile failed, errCode:" + error.code + ", errMessage:" + error.message); 701 }; 702 ``` 703 704## FileAccessHelper.delete 705 706delete(uri: string) : Promise<number> 707 708Deletes a file or directory. This API uses a promise to return the result. 709 710**System capability**: SystemCapability.FileManagement.UserFileService 711 712**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 713 714**Parameters** 715 716| Name| Type| Mandatory| Description| 717| --- | --- | --- | -- | 718| uri | string | Yes| URI of the file or directory to delete.| 719 720**Return value** 721 722| Type| Description| 723| --- | -- | 724| Promise<number> | Promise used to return the result.| 725 726**Example** 727 728 ```js 729 // The media library URI is used as an example. 730 //In the sample code, targetUri indicates a file in the Download directory. The URI is the URI in fileInfo. 731 // You can use the URI obtained. 732 let targetUri = "datashare:///media/file/100"; 733 try { 734 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 735 let code = await fileAccessHelper.delete(targetUri); 736 if (code != 0) 737 console.error("delete failed, code " + code); 738 } catch (error) { 739 console.error("delete failed, errCode:" + error.code + ", errMessage:" + error.message); 740 }; 741 ``` 742 743## FileAccessHelper.delete 744 745delete(uri: string, callback: AsyncCallback<number>) : void; 746 747Deletes a file or directory. This API uses an asynchronous callback to return the result. 748 749**System capability**: SystemCapability.FileManagement.UserFileService 750 751**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 752 753**Parameters** 754 755| Name| Type| Mandatory| Description| 756| --- | --- | --- | -- | 757| uri | string | Yes| URI of the file or directory to delete.| 758| callback | AsyncCallback<number> | Yes| Promise used to return the result.| 759 760**Example** 761 762 ```js 763 // The media library URI is used as an example. 764 //In the sample code, targetUri indicates a file in the Download directory. The URI is the URI in fileInfo. 765 // You can use the URI obtained. 766 let targetUri = "datashare:///media/file/100"; 767 try { 768 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 769 fileAccessHelper.delete(targetUri, function (err, code) { 770 if (err) { 771 console.error("Failed to delete in async, errCode:" + err.code + ", errMessage:" + err.message); 772 return; 773 } 774 console.log("delete sucess, code: " + code); 775 }); 776 } catch (error) { 777 console.error("delete failed, errCode:" + error.code + ", errMessage:" + error.message); 778 }; 779 ``` 780 781## FileAccessHelper.move 782 783move(sourceFile: string, destFile: string) : Promise<string> 784 785Moves a file or directory. This API uses a promise to return the result. 786 787**System capability**: SystemCapability.FileManagement.UserFileService 788 789**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 790 791**Parameters** 792 793| Name| Type| Mandatory| Description| 794| --- | --- | --- | -- | 795| sourceFile | string | Yes| URI of the file or directory to move.| 796| destFile | string | Yes| URI of the directory, to which the file or directory will be moved.| 797 798**Return value** 799 800| Type| Description| 801| ----- | ------ | 802| Promise<string> | Promise used to return the URI of the file or directory in the destination directory.| 803 804**Example** 805 806 ```js 807 // The media library URI is used as an example. 808 //In the sample code, sourceFile destFile indicates the file or directory in the Download directory. The URI is the URI in fileInfo. 809 // You can use the URI obtained. 810 let sourceFile = "datashare:///media/file/102"; 811 let destFile = "datashare:///media/file/101"; 812 try { 813 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 814 let fileUri = await fileAccessHelper.move(sourceFile, destFile); 815 console.log("move sucess, fileUri: " + JSON.stringify(fileUri)); 816 } catch (error) { 817 console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message); 818 }; 819 ``` 820 821## FileAccessHelper.move 822 823move(sourceFile: string, destFile: string, callback: AsyncCallback<string>) : void; 824 825Moves a file or directory. This API uses an asynchronous callback to return the result. 826 827**System capability**: SystemCapability.FileManagement.UserFileService 828 829**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 830 831**Parameters** 832 833| Name| Type| Mandatory| Description| 834| --- | --- | --- | -- | 835| sourceFile | string | Yes| URI of the file or directory to move.| 836| destFile | string | Yes| URI of the directory, to which the file or directory will be moved.| 837| callback | AsyncCallback<string> | Yes| Promise used to return the URI of the file or directory in the destination directory.| 838 839**Example** 840 841 ```js 842 // The media library URI is used as an example. 843 //In the sample code, sourceFile destFile indicates the file or directory in the Download directory. The URI is the URI in fileInfo. 844 // You can use the URI obtained. 845 let sourceFile = "datashare:///media/file/102"; 846 let destFile = "datashare:///media/file/101"; 847 try { 848 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 849 fileAccessHelper.move(sourceFile, destFile, function (err, fileUri) { 850 if (err) { 851 console.error("Failed to move in async, errCode:" + err.code + ", errMessage:" + err.message); 852 return; 853 } 854 console.log("move sucess, fileUri: " + JSON.stringify(fileUri)); 855 }); 856 } catch (error) { 857 console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message); 858 }; 859 ``` 860 861## FileAccessHelper.rename 862 863rename(uri: string, displayName: string) : Promise<string> 864 865Renames a file or directory. This API uses a promise to return the result. 866 867**System capability**: SystemCapability.FileManagement.UserFileService 868 869**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 870 871**Parameters** 872 873| Name| Type| Mandatory| Description| 874| --- | --- | --- | -- | 875| uri | string | Yes| URI of the file or directory to rename.| 876| displayName | string | Yes| New name of the file or directory, which can contain the file name extension.| 877 878**Return value** 879 880| Type| Description| 881| --- | -- | 882| Promise<string> | Promise used to return the URI of the renamed file or directory.| 883 884**Example** 885 886 ```js 887 // The media library URI is used as an example. 888 // In the sample code, sourceDir indicates a file in the Download directory. The URI is the URI in fileInfo. 889 // You can use the URI obtained. 890 let sourceDir = "datashare:///media/file/100"; 891 try { 892 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 893 let DestDir = await fileAccessHelper.rename(sourceDir, "testDir"); 894 console.log("rename sucess, DestDir: " + JSON.stringify(DestDir)); 895 } catch (error) { 896 console.error("rename failed, errCode:" + error.code + ", errMessage:" + error.message); 897 }; 898 ``` 899 900## FileAccessHelper.rename 901 902rename(uri: string, displayName: string, callback: AsyncCallback<string>) : void; 903 904Renames a file or directory. This API uses an asynchronous callback to return the result. 905 906**System capability**: SystemCapability.FileManagement.UserFileService 907 908**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 909 910**Parameters** 911 912| Name| Type| Mandatory| Description| 913| --- | --- | --- | -- | 914| uri | string | Yes| URI of the file or directory to rename.| 915| displayName | string | Yes| New name of the file or directory, which can contain the file name extension.| 916| callback | AsyncCallback<string> | Yes| Promise used to return the URI of the renamed file or directory.| 917 918**Example** 919 920 ```js 921 // The media library URI is used as an example. 922 // In the sample code, sourceDir indicates a file in the Download directory. The URI is the URI in fileInfo. 923 // You can use the URI obtained. 924 let sourceDir = "datashare:///media/file/100"; 925 try { 926 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 927 fileAccessHelper.rename(sourceDir, "testDir", function (err, DestDir) { 928 if (err) { 929 console.error("Failed to rename in async, errCode:" + err.code + ", errMessage:" + err.message); 930 return; 931 } 932 console.log("rename sucess, DestDir: " + JSON.stringify(DestDir)); 933 }); 934 } catch (error) { 935 console.error("rename failed, errCode:" + error.code + ", errMessage:" + error.message); 936 }; 937 ``` 938 939## FileAccessHelper.access 940 941access(sourceFileUri: string) : Promise<boolean> 942 943Checks whether a file or directory exists. This API uses a promise to return the result. 944 945**System capability**: SystemCapability.FileManagement.UserFileService 946 947**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 948 949**Parameters** 950 951| Name| Type| Mandatory| Description| 952| --- | --- | --- | -- | 953| sourceFileUri | string | Yes| URI of the file or directory.| 954 955**Return value** 956 957| Type| Description| 958| --- | -- | 959| Promise<boolean> | Promise used to return the result.| 960 961**Example** 962 963 ```js 964 // The media library URI is used as an example. 965 // In the sample code, sourceDir indicates a file in the Download directory. The URI is the URI in fileInfo. 966 // You can use the URI obtained. 967 let sourceDir = "datashare:///media/file/100"; 968 try { 969 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 970 let existJudgment = await fileAccessHelper.access(sourceDir); 971 if (existJudgment) 972 console.log("sourceDir exists"); 973 else 974 console.log("sourceDir does not exist"); 975 } catch (error) { 976 console.error("access failed, errCode:" + error.code + ", errMessage:" + error.message); 977 }; 978 ``` 979 980## FileAccessHelper.access 981 982access(sourceFileUri: string, callback: AsyncCallback<boolean>) : void; 983 984Checks whether a file or directory exists. This API uses an asynchronous callback to return the result. 985 986**System capability**: SystemCapability.FileManagement.UserFileService 987 988**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 989 990**Parameters** 991 992| Name| Type| Mandatory| Description| 993| --- | --- | --- | -- | 994| sourceFileUri | string | Yes| URI of the file or directory.| 995| callback | AsyncCallback<boolean> | Yes| Promise used to return the result.| 996 997**Example** 998 999 ```js 1000 // The media library URI is used as an example. 1001 // In the sample code, sourceDir indicates a file in the Download directory. The URI is the URI in fileInfo. 1002 // You can use the URI obtained. 1003 let sourceDir = "datashare:///media/file/100"; 1004 try { 1005 // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper. 1006 fileAccessHelper.access(sourceDir, function (err, existJudgment) { 1007 if (err) { 1008 console.error("Failed to access in async, errCode:" + err.code + ", errMessage:" + err.message); 1009 return; 1010 } 1011 if (existJudgment) 1012 console.log("sourceDir exists"); 1013 else 1014 console.log("sourceDir does not exist"); 1015 }); 1016 } catch (error) { 1017 console.error("access failed, errCode:" + error.code + ", errMessage:" + error.message); 1018 }; 1019 ``` 1020 1021## RootIterator.next 1022 1023next( ) : { value: RootInfo, done: boolean } 1024 1025Obtains the next-level device root directory. **RootIterator** is an iterator object of the device root directory. 1026 1027**System capability**: SystemCapability.FileManagement.UserFileService 1028 1029**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 1030 1031**Return value** 1032 1033| Type| Description| 1034| --- | -- | 1035| {value: RootInfo, done: boolean} | Root directory information obtained. This API traverses the directory until **done** returns **true**. The **value** field contains the root directory information.| 1036 1037## FileIterator.next 1038 1039next( ) : { value: FileInfo, done: boolean } 1040 1041Obtains the information about the next-level file or directory. **FileIterator** is an iterator object of a directory. 1042 1043**System capability**: SystemCapability.FileManagement.UserFileService 1044 1045**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 1046 1047**Return value** 1048 1049| Type| Description| 1050| --- | -- | 1051| {value: FileInfo, done: boolean} | File or directory information obtained. This API traverses the specified directory until **done** returns **true**. The **value** field contains the file or directory information obtained.| 1052 1053## RootInfo 1054 1055Represents the root attribute information and interface capabilities of a device. 1056 1057**System capability**: SystemCapability.FileManagement.UserFileService 1058 1059**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 1060 1061### Attributes 1062 1063| Name| Type | Readable| Writable| Description | 1064| ------ | ------ | -------- | ------ | -------- | 1065| deviceType | number | Yes| No|Device type.| 1066| uri | string | Yes| No| Root directory URI of the device.| 1067| displayName | string | Yes| No| Device name.| 1068| deviceFlags | number | Yes| No| Capabilities supported by the device.| 1069 1070## FileInfo 1071 1072Represents the file or directory attribute information and interface capabilities. 1073 1074**System capability**: SystemCapability.FileManagement.UserFileService 1075 1076**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER 1077 1078### Attributes 1079 1080| Name| Type | Readable| Writable| Description | 1081| ------ | ------ | -------- | ------ | -------- | 1082| uri | string | Yes| No| URI of the file or directory.| 1083| fileName | string | Yes| No| Name of a file or directory.| 1084| mode | number | Yes| No| Permissions on the file or directory.| 1085| size | number | Yes| No| Size of the file or directory.| 1086| mtime | number | Yes| No| Time when the file or directory was last modified.| 1087| mimeType | string | Yes| No| MIME type of the file or directory.| 1088 1089## OPENFLAGS 1090 1091Enumerates the modes for opening a file. 1092 1093**System capability**: SystemCapability.FileManagement.UserFileService 1094 1095| Name| Value| Description| 1096| ----- | ------ | ------ | 1097| READ | 0o0 | Read mode.| 1098| WRITE | 0o1 | Write mode.| 1099| WRITE_READ | 0o2 | Read/Write mode.| 1100