1# @ohos.filemanagement.userFileManager (用户数据管理) 2 3该模块提供用户数据管理能力,包括访问、修改用户等用户公共媒体数据信息等常用功能。 4 5>  **说明:** 6> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7> 本模块接口为系统接口。 8 9## 导入模块 10 11```ts 12import userFileManager from '@ohos.filemanagement.userFileManager'; 13``` 14 15## userFileManager.getUserFileMgr 16 17getUserFileMgr(context: Context): UserFileManager 18 19获取用户数据管理模块的实例,用于访问和修改用户等用户公共媒体数据信息(如音频、视频、图片、文档等)。 20 21**模型约束:** 此接口仅可在Stage模型下使用。 22 23**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 24 25**参数:** 26 27| 参数名 | 类型 | 必填 | 说明 | 28| ------- | ------- | ---- | -------------------------- | 29| context | [Context](js-apis-inner-app-context.md) | 是 | 传入Ability实例的Context | 30 31**返回值:** 32 33| 类型 | 说明 | 34| ----------------------------- | :---- | 35| [UserFileManager](#userfilemanager) | 媒体库实例 | 36 37**示例:** 38 39```ts 40//此处获取的userFileManager实例mgr为全局对象,后续使用到mgr的地方默认为使用此处获取的对象,如未添加此段代码报mgr未定义的错误请自行添加 41const context = getContext(this); 42let mgr = userFileManager.getUserFileMgr(context); 43``` 44 45## UserFileManager 46 47### getPhotoAssets 48 49getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void; 50 51 52获取图片和视频资源,使用callback方式返回结果。 53 54 55 56**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 57 58**需要权限**:ohos.permission.READ_IMAGEVIDEO 59 60**参数:** 61 62| 参数名 | 类型 | 必填 | 说明 | 63| -------- | ------------------------ | ---- | ------------------------- | 64| options | [FetchOptions](#fetchoptions) | 是 | 图片和视频检索选项 | 65| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback 返回图片和视频检索结果集 | 66 67**示例:** 68 69```ts 70import dataSharePredicates from '@ohos.data.dataSharePredicates'; 71 72async function example() { 73 console.info('getPhotoAssets'); 74 let predicates = new dataSharePredicates.DataSharePredicates(); 75 let fetchOptions = { 76 fetchColumns: [], 77 predicates: predicates 78 }; 79 80 mgr.getPhotoAssets(fetchOptions, async (err, fetchResult) => { 81 if (fetchResult != undefined) { 82 console.info('fetchResult success'); 83 let fileAsset = await fetchResult.getFirstObject(); 84 if (fileAsset != undefined) { 85 console.info("fileAsset.displayName : " + fileAsset.displayName); 86 } 87 } else { 88 console.error('fetchResult fail' + err); 89 } 90 }); 91} 92``` 93 94 95### getPhotoAssets 96 97getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>; 98 99获取图片和视频资源,使用Promise方式返回结果。 100 101**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 102 103**需要权限**:ohos.permission.READ_IMAGEVIDEO 104 105**参数:** 106 107| 参数名 | 类型 | 必填 | 说明 | 108| ------- | ------------------- | ---- | ---------------- | 109| options | [FetchOptions](#fetchoptions) | 是 | 图片和视频检索选项 | 110 111**返回值** 112 113| 类型 | 说明 | 114| --------------------------- | -------------- | 115| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 图片和视频数据结果集 | 116 117**示例:** 118 119```ts 120import dataSharePredicates from '@ohos.data.dataSharePredicates'; 121 122async function example() { 123 console.info('getPhotoAssets'); 124 let predicates = new dataSharePredicates.DataSharePredicates(); 125 let fetchOptions = { 126 fetchColumns: [], 127 predicates: predicates 128 }; 129 try { 130 let fetchResult = await mgr.getPhotoAssets(fetchOptions); 131 if (fetchResult != undefined) { 132 console.info('fetchResult success'); 133 let fileAsset = await fetchResult.getFirstObject(); 134 if (fileAsset != undefined) { 135 console.info("fileAsset.displayName :" + fileAsset.displayName); 136 } 137 } 138 } catch (err) { 139 console.error('getPhotoAssets failed, message = ', err); 140 } 141} 142``` 143### createPhotoAsset 144 145createPhotoAsset(displayName: string, albumUri: string, callback: AsyncCallback<FileAsset>): void; 146 147创建图片或视频资源,使用callback方式返回结果。 148 149**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 150 151**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 152 153**参数:** 154 155| 参数名 | 类型 | 必填 | 说明 | 156| -------- | ------------------------ | ---- | ------------------------- | 157| displayName | string | 是 | 创建的图片或者视频文件名 | 158| albumUri | string | 是 | 创建的图片或者视频所在相册的uri | 159| callback | AsyncCallback<[FileAsset](#fileasset)> | 是 | callback 返回创建的图片和视频结果 | 160 161**示例:** 162 163```ts 164import dataSharePredicates from '@ohos.data.dataSharePredicates'; 165 166async function example() { 167 console.info('createPhotoAssetDemo'); 168 let predicates = new dataSharePredicates.DataSharePredicates(); 169 let fetchOptions = { 170 predicates: predicates 171 }; 172 let albums = await mgr.getPhotoAlbums(fetchOptions); 173 let album = await albums.getFirstObject(); 174 let testFileName = "testFile" + Date.now() + ".jpg"; 175 mgr.createPhotoAsset(testFileName, album.albumUri, (err, fileAsset) => { 176 if (fileAsset != undefined) { 177 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 178 console.info('createPhotoAsset successfully'); 179 } else { 180 console.error('createPhotoAsset failed, message = ', err); 181 } 182 }); 183} 184``` 185 186### createPhotoAsset 187 188createPhotoAsset(displayName: string, callback: AsyncCallback<FileAsset>): void; 189 190创建图片或视频资源,使用callback方式返回结果。 191 192**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 193 194**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 195 196**参数:** 197 198| 参数名 | 类型 | 必填 | 说明 | 199| -------- | ------------------------ | ---- | ------------------------- | 200| displayName | string | 是 | 创建的图片或者视频文件名 | 201| callback | AsyncCallback<[FileAsset](#fileasset)> | 是 | callback 返回创建的图片和视频结果 | 202 203**示例:** 204 205```ts 206async function example() { 207 console.info('createPhotoAssetDemo'); 208 let testFileName = "testFile" + Date.now() + ".jpg"; 209 mgr.createPhotoAsset(testFileName, (err, fileAsset) => { 210 if (fileAsset != undefined) { 211 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 212 console.info('createPhotoAsset successfully'); 213 } else { 214 console.error('createPhotoAsset failed, message = ', err); 215 } 216 }); 217} 218``` 219 220### createPhotoAsset 221 222createPhotoAsset(displayName: string, albumUri?: string): Promise<FileAsset>; 223 224创建图片或视频资源,使用Promise方式返回结果。 225 226**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 227 228**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 229 230**参数:** 231 232| 参数名 | 类型 | 必填 | 说明 | 233| -------- | ------------------------ | ---- | ------------------------- | 234| displayName | string | 是 | 创建的图片或者视频文件名 | 235| albumUri | string | 否 | 创建的图片或者视频所在相册的uri | 236 237**返回值** 238 239| 类型 | 说明 | 240| --------------------------- | -------------- | 241| Promise<[FileAsset](#fileasset)> | 返回创建的图片和视频结果 | 242 243**示例:** 244 245```ts 246async function example() { 247 console.info('createPhotoAssetDemo'); 248 try { 249 let testFileName = "testFile" + Date.now() + ".jpg"; 250 let fileAsset = await mgr.createPhotoAsset(testFileName); 251 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 252 console.info('createPhotoAsset successfully'); 253 } catch (err) { 254 console.error('createPhotoAsset failed, message = ', err); 255 } 256} 257``` 258 259### getPhotoAlbums 260 261getPhotoAlbums(options: AlbumFetchOptions, callback: AsyncCallback<FetchResult<Album>>): void; 262 263 264获取相册,使用callback方式返回结果。 265 266**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 267 268**需要权限**:ohos.permission.READ_IMAGEVIDEO 269 270**参数:** 271 272| 参数名 | 类型 | 必填 | 说明 | 273| -------- | ------------------------ | ---- | ------------------------- | 274| options | [AlbumFetchOptions](#albumfetchoptions) | 是 | 相册检索选项 | 275| callback | AsyncCallback<[FetchResult](#fetchresult)<[Album](#album)>> | 是 | callback 返回相册检索结果 | 276 277**示例:** 278 279```ts 280import dataSharePredicates from '@ohos.data.dataSharePredicates'; 281 282async function example() { 283 console.info('getPhotoAlbumsDemo'); 284 let predicates = new dataSharePredicates.DataSharePredicates(); 285 let albumFetchOptions = { 286 predicates: predicates 287 }; 288 289 mgr.getPhotoAlbums(albumFetchOptions, (err, fetchResult) => { 290 if (fetchResult != undefined) { 291 console.info('albums.count = ' + fetchResult.getCount()); 292 fetchResult.getFirstObject((err, album) => { 293 if (album != undefined) { 294 console.info('first album.albumName = ' + album.albumName); 295 } else { 296 console.error('album is undefined, err = ', err); 297 } 298 }); 299 } else { 300 console.error('getPhotoAlbums fail, message = ', err); 301 } 302 }); 303} 304``` 305 306### getPhotoAlbums 307 308getPhotoAlbums(options: AlbumFetchOptions): Promise<FetchResult<Album>>; 309 310获取相册,使用Promise方式返回结果。 311 312**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 313 314**需要权限**:ohos.permission.READ_IMAGEVIDEO 315 316**参数:** 317 318| 参数名 | 类型 | 必填 | 说明 | 319| -------- | ------------------------ | ---- | ------------------------- | 320| options | [AlbumFetchOptions](#albumfetchoptions) | 是 | 相册检索选项 | 321 322**返回值** 323 324| 类型 | 说明 | 325| --------------------------- | -------------- | 326| Promise<[FetchResult](#fetchresult)<[Album](#album)>> | Promise 返回相册检索结果 | 327 328**示例:** 329 330```ts 331import dataSharePredicates from '@ohos.data.dataSharePredicates'; 332 333async function example() { 334 console.info('getPhotoAlbumsDemo'); 335 let predicates = new dataSharePredicates.DataSharePredicates(); 336 let albumFetchOptions = { 337 predicates: predicates 338 }; 339 try { 340 let fetchResult = await mgr.getPhotoAlbums(albumFetchOptions); 341 console.info('album.count = ' + fetchResult.getCount()); 342 const album = await fetchResult.getFirstObject(); 343 console.info('first album.albumName = ' + album.albumName); 344 } catch (err) { 345 console.error('getPhotoAlbums fail, message = ' + err); 346 } 347} 348``` 349 350### getPrivateAlbum 351 352getPrivateAlbum(type: PrivateAlbumType, callback: AsyncCallback<FetchResult<PrivateAlbum>>): void; 353 354 355获取系统相册,使用 callback 方式返回系统相册的数组。 356 357**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 358 359**需要权限**:ohos.permission.READ_IMAGEVIDEO 360 361**参数:** 362 363| 参数名 | 类型 | 必填 | 说明 | 364| -------- | ------------------------ | ---- | ------------------------- | 365| type | [PrivateAlbumType](#privatealbumtype) | 是 | 系统相册类型 | 366| callback | AsyncCallback<[FetchResult](#fetchresult)<[PrivateAlbum](#privatealbum)>> | 是 | callback 返回相册检索结果 | 367 368**示例:** 369 370```ts 371async function example() { 372 console.info('getPrivateAlbumDemo'); 373 mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH, async (err, fetchResult) => { 374 if (fetchResult != undefined) { 375 let trashAlbum = await fetchResult.getFirstObject(); 376 console.info('first album.albumName = ' + trashAlbum.albumName); 377 } else { 378 console.error('getPrivateAlbum failed. message = ', err); 379 } 380 }); 381} 382``` 383 384### getPrivateAlbum 385 386getPrivateAlbum(type: PrivateAlbumType): Promise<FetchResult<PrivateAlbum>>; 387 388 389获取系统相册,使用Promise方式返回结果。 390 391**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 392 393**需要权限**:ohos.permission.READ_IMAGEVIDEO 394 395**参数:** 396 397| 参数名 | 类型 | 必填 | 说明 | 398| -------- | ------------------------ | ---- | ------------------------- | 399| type | [PrivateAlbumType](#privatealbumtype) | 是 | 系统相册类型 | 400 401**返回值** 402 403| 类型 | 说明 | 404| --------------------------- | -------------- | 405| Promise<[FetchResult](#fetchresult)<[PrivateAlbum](#privatealbum)>> | Promise 返回相册检索结果 | 406 407**示例:** 408 409```ts 410async function example() { 411 console.info('getPrivateAlbumDemo'); 412 try { 413 let fetchResult = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 414 let trashAlbum = await fetchResult.getFirstObject(); 415 console.info('first album.albumName = ' + trashAlbum.albumName); 416 } catch (err) { 417 console.error('getPrivateAlbum failed. message = ', err); 418 } 419} 420``` 421 422### getAudioAssets 423 424getAudioAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void; 425 426 427获取音频文件,使用callback方式返回结果。 428 429**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 430 431**需要权限**:ohos.permission.READ_AUDIO 432 433**参数:** 434 435| 参数名 | 类型 | 必填 | 说明 | 436| -------- | ------------------------ | ---- | ------------------------- | 437| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 | 438| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback 返回音频检索结果 | 439 440**示例:** 441 442```ts 443import dataSharePredicates from '@ohos.data.dataSharePredicates'; 444 445async function example() { 446 console.info('getAudioAssets'); 447 let predicates = new dataSharePredicates.DataSharePredicates(); 448 let fetchOptions = { 449 fetchColumns: [], 450 predicates: predicates 451 }; 452 453 mgr.getAudioAssets(fetchOptions, async (err, fetchResult) => { 454 if (fetchResult != undefined) { 455 console.info('fetchFileResult success'); 456 let fileAsset = await fetchResult.getFirstObject(); 457 if (fileAsset != undefined) { 458 console.info("fileAsset.displayName :" + fileAsset.displayName); 459 } 460 } else { 461 console.error('fetchFileResult fail' + err); 462 } 463 }); 464} 465``` 466 467### getAudioAssets 468 469getAudioAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>; 470 471 472获取音频文件,使用callback方式返回结果。 473 474**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 475 476**需要权限**:ohos.permission.READ_AUDIO 477 478**参数:** 479 480| 参数名 | 类型 | 必填 | 说明 | 481| -------- | ------------------------ | ---- | ------------------------- | 482| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 | 483 484**返回值** 485 486| 类型 | 说明 | 487| --------------------------- | -------------- | 488| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise 返回音频检索结果 | 489 490**示例:** 491 492```ts 493import dataSharePredicates from '@ohos.data.dataSharePredicates'; 494 495async function example() { 496 console.info('getAudioAssets'); 497 let predicates = new dataSharePredicates.DataSharePredicates(); 498 let fetchOptions = { 499 fetchColumns: [], 500 predicates: predicates 501 }; 502 try { 503 var fetchResult = await mgr.getAudioAssets(fetchOptions); 504 } catch (err) { 505 console.error('getAudioAssets failed, message = ', err); 506 } 507 508 if (fetchResult != undefined) { 509 console.info('fetchFileResult success'); 510 let fileAsset = await fetchResult.getFirstObject(); 511 if (fileAsset != undefined) { 512 console.info("fileAsset.displayName :" + fileAsset.displayName); 513 } 514 } 515} 516``` 517### delete 518 519delete(uri: string, callback: AsyncCallback<void>): void; 520 521删除媒体文件,删除的文件进入到回收站。 522 523**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 524 525**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 526 527**参数**: 528 529| 参数名 | 类型 | 必填 | 说明 | 530| -------- | ------------------------- | ---- | ---------- | 531| uri | string | 是 | 媒体文件uri | 532| callback | AsyncCallback<void> | 是 | 回调返回空 | 533 534**示例**: 535 536```ts 537import dataSharePredicates from '@ohos.data.dataSharePredicates'; 538 539async function example() { 540 console.info('deleteAssetDemo'); 541 let predicates = new dataSharePredicates.DataSharePredicates(); 542 let fetchOptions = { 543 fetchColumns: [], 544 predicates: predicates 545 }; 546 try { 547 const fetchResult = await mgr.getPhotoAssets(fetchOptions); 548 var asset = await fetchResult.getFirstObject(); 549 } catch (err) { 550 console.info('fetch failed, message =', err); 551 } 552 553 if (asset == undefined) { 554 console.error('asset not exist'); 555 return; 556 } 557 mgr.delete(asset.uri, (err) => { 558 if (err == undefined) { 559 console.info("delete successfully"); 560 } else { 561 console.error("delete failed with error: " + err); 562 } 563 }); 564} 565``` 566### delete 567 568delete(uri: string): Promise<void>; 569 570删除媒体文件,删除的文件进入到回收站。 571 572**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 573 574**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 575 576**参数**: 577 578| 参数名 | 类型 | 必填 | 说明 | 579| -------- | ------------------------- | ---- | ---------- | 580| uri | string | 是 | 媒体文件uri | 581 582**返回值**: 583 584| 类型 | 说明 | 585| --------------------------------------- | ----------------- | 586| Promise<void>| 回调返回空 | 587 588**示例**: 589 590```ts 591import dataSharePredicates from '@ohos.data.dataSharePredicates'; 592 593async function example() { 594 console.info('deleteDemo'); 595 let predicates = new dataSharePredicates.DataSharePredicates(); 596 let fetchOptions = { 597 fetchColumns: [], 598 predicates: predicates 599 }; 600 try { 601 const fetchResult = await mgr.getPhotoAssets(fetchOptions); 602 var asset = await fetchResult.getFirstObject(); 603 } catch (err) { 604 console.info('fetch failed, message =', err); 605 } 606 607 if (asset == undefined) { 608 console.error('asset not exist'); 609 return; 610 } 611 try { 612 await mgr.delete(asset.uri); 613 console.info("delete successfully"); 614 } catch (err) { 615 console.error("delete failed with error: " + err); 616 } 617} 618``` 619 620### on 621 622on(type: ChangeEvent, callback: Callback<void>): void 623 624打开文件管理库变更通知,使用callback方式返回异步结果。 625 626**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 627 628**参数:** 629 630| 参数名 | 类型 | 必填 | 说明 | 631| -------- | -------------------- | ---- | ------------------------------------------------------------ | 632| type | [ChangeEvent](#changeevent) | 是 | 媒体类型 <br/>'deviceChange': 注册设备变更 <br/>'albumChange': 相册变更<br/>'imageChange': 图片文件变更<br/>'audioChange': 音频文件变更<br/>'videoChange': 视频文件变更<br/>'remoteFileChange': 注册设备上文件变更 | 633| callback | Callback<void> | 是 | 回调返回空 | 634 635**示例:** 636 637```ts 638async function example() { 639 console.info('onDemo'); 640 let count = 0; 641 mgr.on('imageChange', () => { 642 count++; 643 // image file had changed, do something 644 }); 645 try { 646 let testFileName = "testFile" + Date.now() + ".jpg"; 647 let fileAsset = await mgr.createPhotoAsset(testFileName); 648 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 649 console.info('createPhotoAsset successfully'); 650 } catch (err) { 651 console.error('createPhotoAsset failed, message = ' + err); 652 } 653 //sleep 1s 654 if (count > 0) { 655 console.info("onDemo success"); 656 } else { 657 console.error("onDemo fail"); 658 } 659 mgr.off('imageChange', () => { 660 // stop listening success 661 }); 662} 663``` 664 665### off 666 667off(type: ChangeEvent, callback?: Callback<void>): void 668 669关闭文件管理库变更通知,使用callback方式返回异步结果。 670 671**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 672 673**参数:** 674 675| 参数名 | 类型 | 必填 | 说明 | 676| -------- | -------------------- | ---- | ------------------------------------------------------------ | 677| type | [ChangeEvent](#changeevent) | 是 | 媒体类型 <br/>'deviceChange': 注册设备变更 <br/>'albumChange': 相册变更<br/>'imageChange': 图片文件变更<br/>'audioChange': 音频文件变更<br/>'videoChange': 视频文件变更<br/>'remoteFileChange': 注册设备上文件变更 | 678| callback | Callback<void> | 否 | 回调返回空 | 679 680**示例:** 681 682```ts 683async function example() { 684 console.info('offDemo'); 685 let count = 0; 686 mgr.on('imageChange', () => { 687 count++; 688 // image file had changed, do something 689 }); 690 691 mgr.off('imageChange', () => { 692 // stop listening success 693 }); 694 695 try { 696 let testFileName = "testFile" + Date.now() + ".jpg"; 697 let fileAsset = await mgr.createPhotoAsset(testFileName); 698 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 699 console.info('createPhotoAsset successfully'); 700 } catch (err) { 701 console.error('createPhotoAsset failed, message = ' + err); 702 } 703 //sleep 1s 704 if (count == 0) { 705 console.info("offDemo success"); 706 } else { 707 console.error("offDemo fail"); 708 } 709} 710``` 711 712### getActivePeers 713 714getActivePeers(callback: AsyncCallback<Array<PeerInfo>>): void; 715 716获取在线对端设备的信息,使用callback方式返回异步结果。 717 718**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 719 720**参数:** 721 722| 参数名 | 类型 | 必填 | 说明 | 723| -------- | --------------------------------- | ---- | ------------ | 724| callback | AsyncCallback<Array<[PeerInfo](#peerinfo)>> | 是 | 返回在线设备列表 | 725 726**示例:** 727 728```ts 729async function example() { 730 console.info('getActivePeersDemo'); 731 mgr.getActivePeers((err, devicesInfo) => { 732 if (devicesInfo != undefined) { 733 console.log('getActivePeers succeed.'); 734 for (let i = 0; i < devicesInfo.length; i++) { 735 console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); 736 } 737 } else { 738 console.error('getActivePeers failed. message = ', err); 739 } 740 }); 741} 742``` 743 744### getActivePeers 745 746getActivePeers(): Promise<Array<PeerInfo>>; 747 748获取在线对端设备的信息,使用promise方式返回异步结果。 749 750**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 751 752**返回值:** 753 754| 类型 | 说明 | 755| --------------------------- | ----------------------------- | 756| Promise<Array<[PeerInfo](#peerinfo)>> | Promise实例,返回在线设备列表 | 757 758**示例:** 759 760```ts 761async function example() { 762 console.info('getActivePeersDemo'); 763 try { 764 var devicesInfo = await mgr.getActivePeers(); 765 } catch (err) { 766 console.error('getActivePeers failed. message = ', err); 767 } 768 if (devicesInfo != undefined) { 769 console.log('getActivePeers succeed.'); 770 for (let i = 0; i < devicesInfo.length; i++) { 771 console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); 772 } 773 } else { 774 console.error('get distributed fail'); 775 } 776} 777``` 778 779### getAllPeers 780 781getAllPeers(callback: AsyncCallback<Array<PeerInfo>>): void; 782 783获取所有对端设备的信息,使用callback方式返回异步结果。 784 785**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 786 787**参数:** 788 789| 参数名 | 类型 | 必填 | 说明 | 790| -------- | --------------------------------- | ---- | ------------ | 791| callback | AsyncCallback<Array<[PeerInfo](#peerinfo)>> | 是 | 返回在线设备列表 | 792 793**示例:** 794 795```ts 796async function example() { 797 console.info('getAllPeersDemo'); 798 mgr.getAllPeers((err, devicesInfo) => { 799 if (devicesInfo != undefined) { 800 console.log('getAllPeers succeed.'); 801 for (let i = 0; i < devicesInfo.length; i++) { 802 console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); 803 } 804 } else { 805 console.error('getAllPeers failed. message = ', err); 806 } 807 }); 808} 809``` 810 811### getAllPeers 812 813getAllPeers(): Promise<Array<PeerInfo>>; 814 815获取所有对端设备的信息,使用promise方式返回异步结果。 816 817**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 818 819**返回值:** 820 821| 类型 | 说明 | 822| --------------------------- | ----------------------------- | 823| Promise<Array<[PeerInfo](#peerinfo)>> | Promise实例,返回所有设备列表 | 824 825**示例:** 826 827```ts 828async function example() { 829 console.info('getAllPeersDemo'); 830 try { 831 var devicesInfo = await mgr.getAllPeers(); 832 } catch (err) { 833 console.error('getAllPeers failed. message = ', err); 834 } 835 if (devicesInfo != undefined) { 836 console.log('getAllPeers succeed.'); 837 for (let i = 0; i < devicesInfo.length; i++) { 838 console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); 839 } 840 } else { 841 console.error('get distributed fail'); 842 } 843} 844``` 845 846### release 847 848release(callback: AsyncCallback<void>): void 849 850释放UserFileManager实例。 851当后续不需要使用UserFileManager实例中的方法时调用。 852 853**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 854 855**参数:** 856 857| 参数名 | 类型 | 必填 | 说明 | 858| -------- | ------------------------- | ---- | -------------------- | 859| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败 | 860 861**示例:** 862 863```ts 864async function example() { 865 console.info('releaseDemo'); 866 mgr.release((err) => { 867 if (err != undefined) { 868 console.error('release failed. message = ', err); 869 } else { 870 console.info('release ok.'); 871 } 872 }); 873} 874``` 875 876### release 877 878release(): Promise<void> 879 880释放UserFileManager实例。 881当后续不需要使用UserFileManager 实例中的方法时调用。 882 883**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 884 885**返回值:** 886 887| 类型 | 说明 | 888| ------------------- | --------------------------------- | 889| Promise<void> | Promise实例,用于获取异步返回结果 | 890 891**示例:** 892 893```ts 894async function example() { 895 console.info('releaseDemo'); 896 try { 897 await mgr.release(); 898 console.info('release ok.'); 899 } catch (err) { 900 console.error('release failed. message = ', err); 901 } 902} 903``` 904 905## FileAsset 906 907提供封装文件属性的方法。 908 909### 属性 910 911**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 912 913| 名称 | 类型 | 可读 | 可写 | 说明 | 914| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ | 915| uri | string | 是 | 否 | 文件资源uri(如:dataability:///media/image/2) | 916| fileType | [FileType](#filetype) | 是 | 否 | 媒体文件类型 | 917| displayName | string | 是 | 是 | 显示文件名,包含后缀名 | 918 919 920### get 921 922get(member: string): MemberType; 923 924获取FileAsset成员参数。 925 926**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 927 928**参数:** 929 930| 参数名 | 类型 | 必填 | 说明 | 931| -------- | ------------------------- | ---- | ----- | 932| member | string | 是 | 成员参数名称例如:ImageVideoKey.URI | 933 934**示例:** 935 936```ts 937import dataSharePredicates from '@ohos.data.dataSharePredicates'; 938 939async function example() { 940 console.info('fileAssetGetDemo'); 941 try { 942 let predicates = new dataSharePredicates.DataSharePredicates(); 943 let fetchOption = { 944 fetchColumns: [], 945 predicates: predicates 946 }; 947 let fetchResult = await mgr.getPhotoAssets(fetchOption); 948 let fileAsset = await fetchResult.getFirstObject(); 949 let title = userFileManager.ImageVideoKey.TITLE; 950 let fileAssetTitle = fileAsset.get(title.toString()); 951 console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle); 952 } catch (err) { 953 console.error('release failed. message = ', err); 954 } 955} 956``` 957 958### set 959 960set(member: string, value: string): void; 961 962设置FileAsset成员参数。 963 964**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 965 966**参数:** 967 968| 参数名 | 类型 | 必填 | 说明 | 969| -------- | ------------------------- | ---- | ----- | 970| member | string | 是 | 成员参数名称例如:ImageVideoKey.URI | 971| value | string | 是 | 设置成员参数名称,只能修改ImageVideoKey.TITLE的值 | 972 973**示例:** 974 975```ts 976import dataSharePredicates from '@ohos.data.dataSharePredicates'; 977 978async function example() { 979 console.info('fileAssetSetDemo'); 980 try { 981 let predicates = new dataSharePredicates.DataSharePredicates(); 982 let fetchOption = { 983 fetchColumns: [], 984 predicates: predicates 985 }; 986 let fetchResult = await mgr.getPhotoAssets(fetchOption); 987 let fileAsset = await fetchResult.getFirstObject(); 988 let title = userFileManager.ImageVideoKey.TITLE; 989 fileAsset.set(title.toString(), "newTitle"); 990 } catch (err) { 991 console.error('release failed. message = ', err); 992 } 993} 994``` 995 996### commitModify 997 998commitModify(callback: AsyncCallback<void>): void 999 1000修改文件的元数据,使用callback方式返回异步结果。 1001 1002**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1003 1004**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1005 1006**参数:** 1007 1008| 参数名 | 类型 | 必填 | 说明 | 1009| -------- | ------------------------- | ---- | ----- | 1010| callback | AsyncCallback<void> | 是 | 回调返回空 | 1011 1012**示例:** 1013 1014```ts 1015import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1016 1017async function example() { 1018 console.info('commitModifyDemo'); 1019 let predicates = new dataSharePredicates.DataSharePredicates(); 1020 let fetchOption = { 1021 fetchColumns: [], 1022 predicates: predicates 1023 }; 1024 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1025 let fileAsset = await fetchResult.getFirstObject(); 1026 let title = userFileManager.ImageVideoKey.TITLE; 1027 let fileAssetTitle = fileAsset.get(title.toString()); 1028 console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle); 1029 fileAsset.set(title.toString(), "newTitle"); 1030 fileAsset.commitModify((err) => { 1031 if (err == undefined) { 1032 let newFileAssetTitle = fileAsset.get(title.toString()); 1033 console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle); 1034 } else { 1035 console.error('commitModify failed, message =', err); 1036 } 1037 }); 1038} 1039``` 1040 1041### commitModify 1042 1043commitModify(): Promise<void> 1044 1045修改文件的元数据,使用promise方式返回异步结果。 1046 1047**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1048 1049**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1050 1051**返回值:** 1052 1053| 类型 | 说明 | 1054| ------------------- | ---------- | 1055| Promise<void> | Promise返回空 | 1056 1057**示例:** 1058 1059```ts 1060import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1061 1062async function example() { 1063 console.info('commitModifyDemo'); 1064 let predicates = new dataSharePredicates.DataSharePredicates(); 1065 let fetchOption = { 1066 fetchColumns: [], 1067 predicates: predicates 1068 }; 1069 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1070 let fileAsset = await fetchResult.getFirstObject(); 1071 let title = userFileManager.ImageVideoKey.TITLE; 1072 let fileAssetTitle = fileAsset.get(title.toString()); 1073 console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle); 1074 fileAsset.set(title.toString(), "newTitle"); 1075 try { 1076 await fileAsset.commitModify(); 1077 let newFileAssetTitle = fileAsset.get(title.toString()); 1078 console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle); 1079 } catch (err) { 1080 console.error('release failed. message = ', err); 1081 } 1082} 1083``` 1084 1085### open 1086 1087open(mode: string, callback: AsyncCallback<number>): void 1088 1089打开当前文件,使用callback方式返回异步结果。 1090 1091**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。 1092 1093**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1094 1095 1096**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1097 1098**参数** 1099 1100| 参数名 | 类型 | 必填 | 说明 | 1101| -------- | --------------------------- | ---- | ----------------------------------- | 1102| mode | string | 是 | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) | 1103| callback | AsyncCallback<number> | 是 | 回调返回文件描述符 | 1104 1105**示例:** 1106 1107```ts 1108async function example() { 1109 console.info('openDemo'); 1110 let testFileName = "testFile" + Date.now() + ".jpg"; 1111 const fileAsset = await mgr.createPhotoAsset(testFileName); 1112 fileAsset.open('rw', (err, fd) => { 1113 if (fd != undefined) { 1114 console.info('File fd' + fd); 1115 fileAsset.close(fd); 1116 } else { 1117 console.error('File err' + err); 1118 } 1119 }); 1120} 1121``` 1122 1123### open 1124 1125open(mode: string): Promise<number> 1126 1127打开当前文件,使用promise方式返回异步结果。 1128 1129**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。 1130 1131**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1132 1133**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1134 1135**参数:** 1136 1137| 参数名 | 类型 | 必填 | 说明 | 1138| ---- | ------ | ---- | ----------------------------------- | 1139| mode | string | 是 | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) | 1140 1141**返回值:** 1142 1143| 类型 | 说明 | 1144| --------------------- | ------------- | 1145| Promise<number> | Promise返回文件描述符 | 1146 1147**示例:** 1148 1149```ts 1150async function example() { 1151 console.info('openDemo'); 1152 try { 1153 let testFileName = "testFile" + Date.now() + ".jpg"; 1154 const fileAsset = await mgr.createPhotoAsset(testFileName); 1155 let fd = await fileAsset.open('rw'); 1156 if (fd != undefined) { 1157 console.info('File fd' + fd); 1158 fileAsset.close(fd); 1159 } else { 1160 console.error(' open File fail'); 1161 } 1162 } catch (err) { 1163 console.error('open Demo err' + err); 1164 } 1165} 1166``` 1167 1168### close 1169 1170close(fd: number, callback: AsyncCallback<void>): void 1171 1172关闭当前文件,使用callback方式返回异步结果。 1173 1174**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1175 1176**参数:** 1177 1178| 参数名 | 类型 | 必填 | 说明 | 1179| -------- | ------------------------- | ---- | ----- | 1180| fd | number | 是 | 文件描述符 | 1181| callback | AsyncCallback<void> | 是 | 回调返回空 | 1182 1183**示例:** 1184 1185```ts 1186import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1187 1188async function example() { 1189 console.info('closeDemo'); 1190 try { 1191 let predicates = new dataSharePredicates.DataSharePredicates(); 1192 let fetchOption = { 1193 fetchColumns: [], 1194 predicates: predicates 1195 }; 1196 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1197 const fileAsset = await fetchResult.getFirstObject(); 1198 let fd = await fileAsset.open('rw'); 1199 console.info('file fd', fd); 1200 fileAsset.close(fd, (err) => { 1201 if (err == undefined) { 1202 console.info('asset close succeed.'); 1203 } else { 1204 console.error('close failed, message = ' + err); 1205 } 1206 }); 1207 } catch (err) { 1208 console.error('close failed, message = ' + err); 1209 } 1210} 1211``` 1212 1213### close 1214 1215close(fd: number): Promise<void> 1216 1217关闭当前文件,使用promise方式返回异步结果。 1218 1219**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1220 1221**参数:** 1222 1223| 参数名 | 类型 | 必填 | 说明 | 1224| ---- | ------ | ---- | ----- | 1225| fd | number | 是 | 文件描述符 | 1226 1227**返回值:** 1228 1229| 类型 | 说明 | 1230| ------------------- | ---------- | 1231| Promise<void> | Promise返回空 | 1232 1233**示例:** 1234 1235```ts 1236import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1237 1238async function example() { 1239 console.info('closeDemo'); 1240 try { 1241 let predicates = new dataSharePredicates.DataSharePredicates(); 1242 let fetchOption = { 1243 fetchColumns: [], 1244 predicates: predicates 1245 }; 1246 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1247 const asset = await fetchResult.getFirstObject(); 1248 let fd = await asset.open('rw'); 1249 console.info('file fd', fd); 1250 await asset.close(fd); 1251 console.info('asset close succeed.'); 1252 } catch (err) { 1253 console.error('close failed, message = ' + err); 1254 } 1255} 1256``` 1257 1258### getThumbnail 1259 1260getThumbnail(callback: AsyncCallback<image.PixelMap>): void 1261 1262获取文件的缩略图,使用callback方式返回异步结果。 1263 1264**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 1265 1266**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1267 1268**参数:** 1269 1270| 参数名 | 类型 | 必填 | 说明 | 1271| -------- | ----------------------------------- | ---- | ---------------- | 1272| callback | AsyncCallback<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | 回调返回缩略图的PixelMap | 1273 1274**示例:** 1275 1276```ts 1277import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1278 1279async function example() { 1280 console.info('getThumbnailDemo'); 1281 let predicates = new dataSharePredicates.DataSharePredicates(); 1282 let fetchOption = { 1283 fetchColumns: [], 1284 predicates: predicates 1285 }; 1286 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1287 const asset = await fetchResult.getFirstObject(); 1288 console.info('asset displayName = ', asset.displayName); 1289 asset.getThumbnail((err, pixelMap) => { 1290 if (err == undefined) { 1291 console.info('getThumbnail successful ' + pixelMap); 1292 } else { 1293 console.error('getThumbnail fail', err); 1294 } 1295 }); 1296} 1297``` 1298 1299### getThumbnail 1300 1301getThumbnail(size: image.Size, callback: AsyncCallback<image.PixelMap>): void 1302 1303获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。 1304 1305**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 1306 1307**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1308 1309**参数:** 1310 1311| 参数名 | 类型 | 必填 | 说明 | 1312| -------- | ----------------------------------- | ---- | ---------------- | 1313| size | [image.Size](js-apis-image.md#size) | 是 | 缩略图尺寸 | 1314| callback | AsyncCallback<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | 回调返回缩略图的PixelMap | 1315 1316**示例:** 1317 1318```ts 1319import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1320 1321async function example() { 1322 console.info('getThumbnailDemo'); 1323 let predicates = new dataSharePredicates.DataSharePredicates(); 1324 let fetchOption = { 1325 fetchColumns: [], 1326 predicates: predicates 1327 }; 1328 let size = { width: 720, height: 720 }; 1329 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1330 const asset = await fetchResult.getFirstObject(); 1331 console.info('asset displayName = ', asset.displayName); 1332 asset.getThumbnail(size, (err, pixelMap) => { 1333 if (err == undefined) { 1334 console.info('getThumbnail successful ' + pixelMap); 1335 } else { 1336 console.error('getThumbnail fail', err); 1337 } 1338 }); 1339} 1340``` 1341 1342### getThumbnail 1343 1344getThumbnail(size?: image.Size): Promise<image.PixelMap> 1345 1346获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。 1347 1348**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 1349 1350**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1351 1352**参数:** 1353 1354| 参数名 | 类型 | 必填 | 说明 | 1355| ---- | -------------- | ---- | ----- | 1356| size | [image.Size](js-apis-image.md#size) | 否 | 缩略图尺寸 | 1357 1358**返回值:** 1359 1360| 类型 | 说明 | 1361| ----------------------------- | --------------------- | 1362| Promise<[image.PixelMap](js-apis-image.md#pixelmap7)> | Promise返回缩略图的PixelMap | 1363 1364**示例:** 1365 1366```ts 1367import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1368 1369async function example() { 1370 console.info('getThumbnailDemo'); 1371 let predicates = new dataSharePredicates.DataSharePredicates(); 1372 let fetchOption = { 1373 fetchColumns: [], 1374 predicates: predicates 1375 }; 1376 let size = { width: 720, height: 720 }; 1377 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1378 const asset = await fetchResult.getFirstObject(); 1379 console.info('asset displayName = ', asset.displayName); 1380 asset.getThumbnail(size).then((pixelMap) => { 1381 console.info('getThumbnail successful ' + pixelMap); 1382 }).catch((err) => { 1383 console.error('getThumbnail fail' + err); 1384 }); 1385} 1386``` 1387 1388### favorite 1389 1390favorite(isFavorite: boolean, callback: AsyncCallback<void>): void 1391 1392将文件设置为收藏文件,使用callback方式返回异步结果。 1393 1394**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1395 1396**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1397 1398**参数:** 1399 1400| 参数名 | 类型 | 必填 | 说明 | 1401| ---------- | ------------------------- | ---- | ---------------------------------- | 1402| isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 | 1403| callback | AsyncCallback<void> | 是 | 回调返回空 | 1404 1405**示例:** 1406 1407```ts 1408import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1409 1410async function example() { 1411 console.info('favoriteDemo'); 1412 let predicates = new dataSharePredicates.DataSharePredicates(); 1413 let fetchOption = { 1414 fetchColumns: [], 1415 predicates: predicates 1416 }; 1417 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1418 const asset = await fetchResult.getFirstObject(); 1419 asset.favorite(true, (err) => { 1420 if (err == undefined) { 1421 console.info("favorite successfully"); 1422 } else { 1423 console.error("favorite failed with error:" + err); 1424 } 1425 }); 1426} 1427``` 1428 1429### favorite 1430 1431favorite(isFavorite: boolean): Promise<void> 1432 1433将文件设置为收藏文件,使用promise方式返回异步结果。 1434 1435**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1436 1437**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1438 1439**参数:** 1440 1441| 参数名 | 类型 | 必填 | 说明 | 1442| ---------- | ------- | ---- | ---------------------------------- | 1443| isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 | 1444 1445**返回值:** 1446 1447| 类型 | 说明 | 1448| ------------------- | ---------- | 1449| Promise<void> | Promise返回空 | 1450 1451**示例:** 1452 1453```ts 1454import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1455 1456async function example() { 1457 console.info('favoriteDemo'); 1458 let predicates = new dataSharePredicates.DataSharePredicates(); 1459 let fetchOption = { 1460 fetchColumns: [], 1461 predicates: predicates 1462 }; 1463 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1464 const asset = await fetchResult.getFirstObject(); 1465 asset.favorite(true).then(function () { 1466 console.info("favorite successfully"); 1467 }).catch(function (err) { 1468 console.error("favorite failed with error:" + err); 1469 }); 1470} 1471``` 1472 1473## FetchResult 1474 1475文件检索结果集。 1476 1477### getCount 1478 1479getCount(): number 1480 1481获取文件检索结果中的文件总数。 1482 1483**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1484 1485**返回值**: 1486 1487| 类型 | 说明 | 1488| ------ | -------- | 1489| number | 检索到的文件总数 | 1490 1491**示例**: 1492 1493```ts 1494import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1495 1496async function example() { 1497 console.info('getCountDemo'); 1498 let predicates = new dataSharePredicates.DataSharePredicates(); 1499 let fetchOption = { 1500 fetchColumns: [], 1501 predicates: predicates 1502 }; 1503 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1504 const fetchCount = fetchResult.getCount(); 1505 console.info('fetchCount = ', fetchCount); 1506} 1507``` 1508 1509### isAfterLast 1510 1511isAfterLast(): boolean 1512 1513检查结果集是否指向最后一行。 1514 1515**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1516 1517**返回值**: 1518 1519| 类型 | 说明 | 1520| ------- | ---------------------------------- | 1521| boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 | 1522 1523**示例**: 1524 1525```ts 1526import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1527 1528async function example() { 1529 let predicates = new dataSharePredicates.DataSharePredicates(); 1530 let fetchOption = { 1531 fetchColumns: [], 1532 predicates: predicates 1533 }; 1534 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1535 const fetchCount = fetchResult.getCount(); 1536 console.info('count:' + fetchCount); 1537 let fileAsset = await fetchResult.getLastObject(); 1538 if (!fetchResult.isAfterLast()) { 1539 console.info('fileAsset isAfterLast displayName = ', fileAsset.displayName); 1540 } else { 1541 console.info('fileAsset not isAfterLast '); 1542 } 1543} 1544``` 1545 1546### close 1547 1548close(): void 1549 1550释放 FetchFileResult 实例并使其失效。无法调用其他方法。 1551 1552**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1553 1554**示例**: 1555 1556```ts 1557import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1558 1559async function example() { 1560 console.info('fetchResultCloseDemo'); 1561 let predicates = new dataSharePredicates.DataSharePredicates(); 1562 let fetchOption = { 1563 fetchColumns: [], 1564 predicates: predicates 1565 }; 1566 try { 1567 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1568 await fetchResult.close(); 1569 console.info('close succeed.'); 1570 } catch (err) { 1571 console.error('close fail. message = ' + err); 1572 } 1573} 1574``` 1575 1576### getFirstObject 1577 1578getFirstObject(callback: AsyncCallback<T>): void 1579 1580获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。 1581 1582**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1583 1584**参数**: 1585 1586| 参数名 | 类型 | 必填 | 说明 | 1587| -------- | --------------------------------------------- | ---- | ------------------------------------------- | 1588| callback | AsyncCallback<T> | 是 | 异步获取结果集中的第一个完成后的回调 | 1589 1590**示例**: 1591 1592```ts 1593import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1594 1595async function example() { 1596 console.info('getFirstObjectDemo'); 1597 let predicates = new dataSharePredicates.DataSharePredicates(); 1598 let fetchOption = { 1599 fetchColumns: [], 1600 predicates: predicates 1601 }; 1602 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1603 fetchResult.getFirstObject((err, fileAsset) => { 1604 if (fileAsset != undefined) { 1605 console.info('fileAsset displayName: ', fileAsset.displayName); 1606 } else { 1607 console.error("fileAsset failed with err:" + err); 1608 } 1609 }); 1610} 1611``` 1612 1613### getFirstObject 1614 1615getFirstObject(): Promise<T> 1616 1617获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。 1618 1619**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1620 1621**返回值**: 1622 1623| 类型 | 说明 | 1624| --------------------------------------- | -------------------------- | 1625| Promise<T> | Promise方式返回 | 1626 1627**示例**: 1628 1629```ts 1630import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1631 1632async function example() { 1633 console.info('getFirstObjectDemo'); 1634 let predicates = new dataSharePredicates.DataSharePredicates(); 1635 let fetchOption = { 1636 fetchColumns: [], 1637 predicates: predicates 1638 }; 1639 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1640 let fileAsset = await fetchResult.getFirstObject(); 1641 console.info('fileAsset displayName: ', fileAsset.displayName); 1642} 1643``` 1644 1645### getNextObject 1646 1647 getNextObject(callback: AsyncCallback<T>): void 1648 1649获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。 1650 1651**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1652 1653**参数**: 1654 1655| 参数名 | 类型 | 必填 | 说明 | 1656| --------- | --------------------------------------------- | ---- | ----------------------------------------- | 1657| callbacke | AsyncCallback<T> | 是 | 异步返回结果集中下一个之后的回调 | 1658 1659**示例**: 1660 1661```ts 1662import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1663 1664async function example() { 1665 console.info('getNextObjectDemo'); 1666 let predicates = new dataSharePredicates.DataSharePredicates(); 1667 let fetchOption = { 1668 fetchColumns: [], 1669 predicates: predicates 1670 }; 1671 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1672 await fetchResult.getFirstObject(); 1673 if (fetchResult.isAfterLast()) { 1674 fetchResult.getNextObject((err, fileAsset) => { 1675 if (fileAsset != undefined) { 1676 console.info('fileAsset displayName: ', fileAsset.displayName); 1677 } else { 1678 console.error("fileAsset failed with err: " + err); 1679 } 1680 }); 1681 } 1682} 1683``` 1684 1685### getNextObject 1686 1687 getNextObject(): Promise<T> 1688 1689获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。 1690 1691**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1692 1693**返回值**: 1694 1695| 类型 | 说明 | 1696| --------------------------------------- | ----------------- | 1697| Promise<T> | 返回结果集中下一个对象 | 1698 1699**示例**: 1700 1701```ts 1702import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1703 1704async function example() { 1705 console.info('getNextObjectDemo'); 1706 let predicates = new dataSharePredicates.DataSharePredicates(); 1707 let fetchOption = { 1708 fetchColumns: [], 1709 predicates: predicates 1710 }; 1711 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1712 await fetchResult.getFirstObject(); 1713 if (fetchResult.isAfterLast()) { 1714 let fileAsset = await fetchResult.getNextObject(); 1715 console.info('fileAsset displayName: ', fileAsset.displayName); 1716 } 1717} 1718``` 1719 1720### getLastObject 1721 1722getLastObject(callback: AsyncCallback<T>): void 1723 1724获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。 1725 1726**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1727 1728**参数**: 1729 1730| 参数名 | 类型 | 必填 | 说明 | 1731| -------- | --------------------------------------------- | ---- | --------------------------- | 1732| callback | AsyncCallback<T> | 是 | 异步返回结果集中最后一个的回调 | 1733 1734**示例**: 1735 1736```ts 1737import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1738 1739async function example() { 1740 console.info('getLastObjectDemo'); 1741 let predicates = new dataSharePredicates.DataSharePredicates(); 1742 let fetchOption = { 1743 fetchColumns: [], 1744 predicates: predicates 1745 }; 1746 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1747 fetchResult.getLastObject((err, fileAsset) => { 1748 if (fileAsset != undefined) { 1749 console.info('fileAsset displayName: ', fileAsset.displayName); 1750 } else { 1751 console.error("fileAsset failed with err: " + err); 1752 } 1753 }); 1754} 1755``` 1756 1757### getLastObject 1758 1759getLastObject(): Promise<T> 1760 1761获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。 1762 1763**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1764 1765**返回值**: 1766 1767| 类型 | 说明 | 1768| --------------------------------------- | ----------------- | 1769| Promise<T> | 返回结果集中最后一个对象 | 1770 1771**示例**: 1772 1773```ts 1774import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1775 1776async function example() { 1777 console.info('getLastObjectDemo'); 1778 let predicates = new dataSharePredicates.DataSharePredicates(); 1779 let fetchOption = { 1780 fetchColumns: [], 1781 predicates: predicates 1782 }; 1783 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1784 let fileAsset = await fetchResult.getLastObject(); 1785 console.info('fileAsset displayName: ', fileAsset.displayName); 1786} 1787``` 1788 1789### getPositionObject 1790 1791getPositionObject(index: number, callback: AsyncCallback<T>): void 1792 1793获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。 1794 1795**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1796 1797**参数**: 1798 1799| 参数名 | 类型 | 必填 | 说明 | 1800| -------- | ---------------------------------------- | ---- | ------------------ | 1801| index | number | 是 | 要获取的文件的索引,从0开始 | 1802| callback | AsyncCallback<T> | 是 | 异步返回指定索引的文件资产的回调 | 1803 1804**示例**: 1805 1806```ts 1807import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1808 1809async function example() { 1810 console.info('getPositionObjectDemo'); 1811 let predicates = new dataSharePredicates.DataSharePredicates(); 1812 let fetchOption = { 1813 fetchColumns: [], 1814 predicates: predicates 1815 }; 1816 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1817 fetchResult.getPositionObject(0, (err, fileAsset) => { 1818 if (fileAsset != undefined) { 1819 console.info('fileAsset displayName: ', fileAsset.displayName); 1820 } else { 1821 console.error("fileAsset failed with err: " + err); 1822 } 1823 }); 1824} 1825``` 1826 1827### getPositionObject 1828 1829getPositionObject(index: number): Promise<T> 1830 1831获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。 1832 1833**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1834 1835**参数**: 1836 1837| 参数名 | 类型 | 必填 | 说明 | 1838| ----- | ------ | ---- | -------------- | 1839| index | number | 是 | 要获取的文件的索引,从0开始 | 1840 1841**返回值**: 1842 1843| 类型 | 说明 | 1844| --------------------------------------- | ----------------- | 1845| Promise<T> | 返回指定索引的文件资产的对象 | 1846 1847**示例**: 1848 1849```ts 1850import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1851 1852async function example() { 1853 console.info('getPositionObjectDemo'); 1854 let predicates = new dataSharePredicates.DataSharePredicates(); 1855 let fetchOption = { 1856 fetchColumns: [], 1857 predicates: predicates 1858 }; 1859 let fetchResult = await mgr.getPhotoAssets(fetchOption); 1860 let fileAsset = await fetchResult.getPositionObject(0); 1861 console.info('fileAsset displayName: ', fileAsset.displayName); 1862} 1863``` 1864 1865## Album 1866 1867实体相册 1868 1869### 属性 1870 1871**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 1872 1873| 名称 | 类型 | 可读 | 可写 | 说明 | 1874| ------------ | ------ | ---- | ---- | ------- | 1875| albumName | string | 是 | 是 | 相册名称 | 1876| albumUri | string | 是 | 否 | 相册Uri | 1877| dateModified | number | 是 | 否 | 修改日期 | 1878| count | number | 是 | 否 | 相册中文件数量 | 1879| coverUri | string | 是 | 否 | 封面文件Uri 1880 1881### getPhotoAssets 1882 1883getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void; 1884 1885获取相册中的文件。该方法使用callback形式来返回文件。 1886 1887**需要权限**:ohos.permission.READ_IMAGEVIDEO 1888 1889**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1890 1891**参数**: 1892 1893| 参数名 | 类型 | 必填 | 说明 | 1894| -------- | ------------------------- | ---- | ---------- | 1895| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 | 1896| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback 返回图片和视频数据结果集| 1897 1898**示例**: 1899 1900```ts 1901import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1902 1903async function example() { 1904 console.info('albumGetFileAssetsDemoCallback'); 1905 1906 let predicates = new dataSharePredicates.DataSharePredicates(); 1907 let albumFetchOptions = { 1908 predicates: predicates 1909 }; 1910 let fetchOption = { 1911 fetchColumns: [], 1912 predicates: predicates 1913 }; 1914 const albumList = await mgr.getPhotoAlbums(albumFetchOptions); 1915 const album = await albumList.getFirstObject(); 1916 album.getPhotoAssets(fetchOption, (err, albumFetchResult) => { 1917 if (albumFetchResult != undefined) { 1918 console.info("album getPhotoAssets successfully, getCount: " + albumFetchResult.getCount()); 1919 } else { 1920 console.error("album getPhotoAssets failed with error: " + err); 1921 } 1922 }); 1923} 1924``` 1925### getPhotoAssets 1926 1927getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>; 1928 1929获取相册中的文件。该方法使用Promise来返回文件。 1930 1931**需要权限**:ohos.permission.READ_IMAGEVIDEO 1932 1933**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1934 1935**参数**: 1936 1937| 参数名 | 类型 | 必填 | 说明 | 1938| -------- | ------------------------- | ---- | ---------- | 1939| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 | 1940| Promise | [FetchResult](#fetchresult)<[FileAsset](#fileasset)> | 是 | 图片和视频数据结果集 | 1941 1942**示例**: 1943 1944```ts 1945import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1946 1947async function example() { 1948 console.info('albumGetFileAssetsDemoPromise'); 1949 1950 let predicates = new dataSharePredicates.DataSharePredicates(); 1951 let albumFetchOptions = { 1952 predicates: predicates 1953 }; 1954 let fetchOption = { 1955 fetchColumns: [], 1956 predicates: predicates 1957 }; 1958 const albumList = await mgr.getPhotoAlbums(albumFetchOptions); 1959 const album = await albumList.getFirstObject(); 1960 album.getPhotoAssets(fetchOption).then((albumFetchResult) => { 1961 console.info("album getFileAssets successfully, getCount: " + albumFetchResult.getCount()); 1962 }).catch((err) => { 1963 console.error("album getFileAssets failed with error: " + err); 1964 }); 1965} 1966``` 1967 1968### commitModify 1969 1970commitModify(callback: AsyncCallback<void>): void; 1971 1972更新相册属性修改到数据库中。 1973 1974**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1975 1976**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1977 1978**参数**: 1979 1980| 参数名 | 类型 | 必填 | 说明 | 1981| -------- | ------------------------- | ---- | ---------- | 1982| callback | AsyncCallback<void> | 是 | 回调返回空 | 1983 1984**示例**: 1985 1986```ts 1987import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1988 1989async function example() { 1990 console.info('albumCommitModifyDemo'); 1991 let predicates = new dataSharePredicates.DataSharePredicates(); 1992 let albumFetchOptions = { 1993 predicates: predicates 1994 }; 1995 const albumList = await mgr.getPhotoAlbums(albumFetchOptions); 1996 const album = await albumList.getFirstObject(); 1997 album.albumName = 'hello'; 1998 album.commitModify((err) => { 1999 if (err != undefined) { 2000 console.error("commitModify failed with error: " + err); 2001 } else { 2002 console.info("commitModify successfully"); 2003 } 2004 }); 2005} 2006``` 2007 2008### commitModify 2009 2010commitModify(): Promise<void>; 2011 2012更新相册属性修改到数据库中。 2013 2014**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2015 2016**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2017 2018**返回值**: 2019 2020| 类型 | 说明 | 2021| ------------------- | ------------ | 2022| Promise<void> | Promise调用返回空 | 2023 2024**示例**: 2025 2026```ts 2027import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2028 2029async function example() { 2030 console.info('albumCommitModifyDemo'); 2031 let predicates = new dataSharePredicates.DataSharePredicates(); 2032 let albumFetchOptions = { 2033 predicates: predicates 2034 }; 2035 try { 2036 var albumList = await mgr.getPhotoAlbums(albumFetchOptions); 2037 } catch (err) { 2038 console.error('getPhotoAlbums failed. message = ', err); 2039 } 2040 const album = await albumList.getFirstObject(); 2041 album.albumName = 'hello'; 2042 album.commitModify().then(() => { 2043 console.info("commitModify successfully"); 2044 }).catch((err) => { 2045 console.error("commitModify failed with error: " + err); 2046 }); 2047} 2048``` 2049 2050## PrivateAlbum 2051 2052系统相册。 2053 2054### 属性 2055 2056**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2057 2058| 名称 | 类型 | 可读 | 可写 | 说明 | 2059| ------------ | ------ | ---- | ---- | ------- | 2060| albumName | string | 是 | 是 | 相册名称 | 2061| albumUri | string | 是 | 否 | 相册Uri | 2062| dateModified | number | 是 | 否 | 修改日期 | 2063| count | number | 是 | 否 | 相册中文件数量 | 2064| coverUri | string | 是 | 否 | 封面文件Uri 2065 2066### getPhotoAssets 2067 2068getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void; 2069 2070获取系统相册中的文件。该方法使用callback形式来返回文件。 2071 2072**需要权限**:ohos.permission.READ_IMAGEVIDEO 2073 2074**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2075 2076**参数**: 2077 2078| 参数名 | 类型 | 必填 | 说明 | 2079| -------- | ------------------------- | ---- | ---------- | 2080| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 | 2081| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback返回图片和视频数据结果集 | 2082 2083**示例**: 2084 2085```ts 2086import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2087 2088async function example() { 2089 console.info('privateAlbumGetFileAssetsDemoCallback'); 2090 let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 2091 let predicates = new dataSharePredicates.DataSharePredicates(); 2092 let fetchOption = { 2093 fetchColumns: [], 2094 predicates: predicates 2095 }; 2096 const trashAlbum = await albumList.getFirstObject(); 2097 trashAlbum.getPhotoAssets(fetchOption, (err, fetchResult) => { 2098 if (fetchResult != undefined) { 2099 let count = fetchResult.getCount(); 2100 console.info('fetchResult.count = ', count); 2101 } else { 2102 console.error('getFileAssets failed, message = ', err); 2103 } 2104 }); 2105} 2106 2107``` 2108### getPhotoAssets 2109 2110getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>; 2111 2112获取系统相册中的文件。该方法使用Promise来返回文件。 2113 2114**需要权限**:ohos.permission.READ_IMAGEVIDEO 2115 2116**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2117 2118**参数**: 2119 2120| 参数名 | 类型 | 必填 | 说明 | 2121| -------- | ------------------------- | ---- | ---------- | 2122| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 | 2123 2124**返回值**: 2125 2126| 类型 | 说明 | 2127| --------------------------------------- | ----------------- | 2128| Promise:[FetchResult](#fetchresult)<[FileAsset](#fileasset)>| 图片和视频数据结果集 | 2129 2130**示例**: 2131 2132```ts 2133import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2134 2135async function example() { 2136 console.info('privateAlbumGetFileAssetsDemoPromise'); 2137 let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 2138 let predicates = new dataSharePredicates.DataSharePredicates(); 2139 let fetchOption = { 2140 fetchColumns: [], 2141 predicates: predicates 2142 }; 2143 const trashAlbum = await albumList.getFirstObject(); 2144 let fetchResult = await trashAlbum.getPhotoAssets(fetchOption); 2145 let count = fetchResult.getCount(); 2146 console.info('fetchResult.count = ', count); 2147} 2148``` 2149### delete 2150 2151delete(uri: string, callback: AsyncCallback<void>): void; 2152 2153删除系统相册中的文件。 2154 2155**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 2156 2157**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2158 2159**参数**: 2160 2161| 参数名 | 类型 | 必填 | 说明 | 2162| -------- | ------------------------- | ---- | ---------- | 2163| uri | string | 是 | 相册uri | 2164| callback | AsyncCallback<void> | 是 | 回调返回空 | 2165 2166**示例**: 2167 2168```ts 2169import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2170 2171async function example() { 2172 console.info('privateAlbumDeleteCallback'); 2173 let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 2174 let predicates = new dataSharePredicates.DataSharePredicates(); 2175 let fetchOption = { 2176 fetchColumns: [], 2177 predicates: predicates 2178 }; 2179 const trashAlbum = await albumList.getFirstObject(); 2180 let fetchResult = await trashAlbum.getPhotoAssets(fetchOption); 2181 const fileAsset = await fetchResult.getFirstObject(); 2182 let deleteFileUri = fileAsset.uri; 2183 trashAlbum.delete(deleteFileUri, (err) => { 2184 if (err != undefined) { 2185 console.error('trashAlbum.delete failed, message = ', err); 2186 } else { 2187 console.info('trashAlbum.delete successfully'); 2188 } 2189 }); 2190} 2191``` 2192### delete 2193 2194delete(uri: string): Promise<void>; 2195 2196删除系统相册中的文件。 2197 2198**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 2199 2200**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2201 2202**参数**: 2203 2204| 参数名 | 类型 | 必填 | 说明 | 2205| -------- | ------------------------- | ---- | ---------- | 2206| uri | string | 是 | 相册uri | 2207 2208**返回值**: 2209 2210| 类型 | 说明 | 2211| --------------------------------------- | ----------------- | 2212| Promise<void>| 回调返回空 | 2213 2214**示例**: 2215 2216```ts 2217import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2218 2219async function example() { 2220 console.info('privateAlbumDeleteDemoPromise'); 2221 let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 2222 let predicates = new dataSharePredicates.DataSharePredicates(); 2223 let fetchOption = { 2224 fetchColumns: [], 2225 predicates: predicates 2226 }; 2227 const trashAlbum = await albumList.getFirstObject(); 2228 let fetchResult = await trashAlbum.getPhotoAssets(fetchOption); 2229 const fileAsset = await fetchResult.getFirstObject(); 2230 let deleteFileUri = fileAsset.uri; 2231 trashAlbum.delete(deleteFileUri).then(() => { 2232 console.info('trashAlbum.delete successfully'); 2233 }).catch((err) => { 2234 console.error('trashAlbum.delete failed, message = ', err); 2235 }); 2236} 2237``` 2238 2239### recover 2240 2241recover(uri: string, callback: AsyncCallback<void>): void; 2242 2243恢复系统相册中的文件。 2244 2245**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 2246 2247**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2248 2249**参数**: 2250 2251| 参数名 | 类型 | 必填 | 说明 | 2252| -------- | ------------------------- | ---- | ---------- | 2253| uri | string | 是 | 相册uri | 2254| callback | AsyncCallback<void> | 是 | 回调返回空 | 2255 2256**示例**: 2257 2258```ts 2259import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2260 2261async function example() { 2262 console.info('privateAlbumRecoverDemoCallback'); 2263 let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 2264 let predicates = new dataSharePredicates.DataSharePredicates(); 2265 let fetchOption = { 2266 fetchColumns: [], 2267 predicates: predicates 2268 }; 2269 const trashAlbum = await albumList.getFirstObject(); 2270 let fetchResult = await trashAlbum.getPhotoAssets(fetchOption); 2271 const fileAsset = await fetchResult.getFirstObject(); 2272 let recoverFileUri = fileAsset.uri; 2273 trashAlbum.recover(recoverFileUri, (err) => { 2274 if (err != undefined) { 2275 console.error('trashAlbum.recover failed, message = ', err); 2276 } else { 2277 console.info('trashAlbum.recover successfully'); 2278 } 2279 }); 2280} 2281``` 2282### recover 2283 2284recover(uri: string): Promise<void>; 2285 2286恢复系统相册中的文件。 2287 2288**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 2289 2290**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2291 2292**参数**: 2293 2294| 参数名 | 类型 | 必填 | 说明 | 2295| -------- | ------------------------- | ---- | ---------- | 2296| uri | string | 是 | 相册uri | 2297 2298**返回值**: 2299 2300| 类型 | 说明 | 2301| --------------------------------------- | ----------------- | 2302| Promise<void>| 回调返回空 | 2303 2304**示例**: 2305 2306```ts 2307import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2308 2309async function example() { 2310 console.info('privateAlbumRecoverDemoPromise'); 2311 let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 2312 let predicates = new dataSharePredicates.DataSharePredicates(); 2313 let fetchOption = { 2314 fetchColumns: [], 2315 predicates: predicates 2316 }; 2317 const trashAlbum = await albumList.getFirstObject(); 2318 let fetchResult = await trashAlbum.getPhotoAssets(fetchOption); 2319 const fileAsset = await fetchResult.getFirstObject(); 2320 let recoverFileUri = fileAsset.uri; 2321 trashAlbum.recover(recoverFileUri).then(() => { 2322 console.info('trashAlbum.recover successfully'); 2323 }).catch((err) => { 2324 console.error('trashAlbum.recover failed, message = ', err); 2325 }); 2326} 2327``` 2328 2329## MemberType 2330 2331成员类型。 2332 2333**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2334 2335| 名称 | 类型 | 可读 | 可写 | 说明 | 2336| ----- | ---- | ---- | ---- | ---- | 2337| number | number | 是 | 是 | number类型 | 2338| string | string | 是 | 是 | string类型 | 2339| boolean | boolean | 是 | 是 | boolean类型 | 2340 2341## ChangeEvent 2342 2343变更监听的媒体文件类型。 2344 2345**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2346 2347| 名称 | 类型 | 可读 | 可写 | 说明 | 2348| ----- | ---- | ---- | ---- | ---- | 2349| deviceChange | string | 是 | 是 | 设备 | 2350| albumChange | string | 是 | 是 | 相册 | 2351| imageChange | string | 是 | 是 | 图片 | 2352| audioChange | string | 是 | 是 | 音频 | 2353| videoChange | string | 是 | 是 | 视频 | 2354| remoteFileChange | string | 是 | 是 | 远程文件 | 2355 2356## PeerInfo 2357 2358注册设备的信息。 2359 2360**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.DistributedCore 2361 2362| 名称 | 类型 | 可读 | 可写 | 说明 | 2363| ---------- | -------------------------- | ---- | ---- | ---------------- | 2364| deviceName | string | 是 | 否 | 注册设备的名称 | 2365| networkId | string | 是 | 否 | 注册设备的网络ID | 2366| isOnline | boolean | 是 | 否 | 是否在线 | 2367 2368 2369## FileType 2370 2371枚举,媒体文件类型。 2372 2373**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2374 2375| 名称 | 值 | 说明 | 2376| ----- | ---- | ---- | 2377| IMAGE | 1 | 图片 | 2378| VIDEO | 2 | 视频 | 2379| AUDIO | 3 | 音频 | 2380 2381## PrivateAlbumType 2382 2383枚举,系统相册类型。 2384 2385**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2386 2387| 名称 | 值 | 说明 | 2388| ----- | ---- | ---- | 2389| TYPE_FAVORITE | 0 | 收藏夹相册 | 2390| TYPE_TRASH | 1 | 回收站相册 | 2391 2392 2393 2394## AudioKey 2395 2396枚举,音频文件关键信息。 2397 2398**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2399 2400| 名称 | 值 | 说明 | 2401| ------------- | ------------------- | ---------------------------------------------------------- | 2402| URI | uri | 文件uri | 2403| DISPLAY_NAME | display_name | 显示名字 | 2404| DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) | 2405| DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) | 2406| TITLE | title | 文件标题 | 2407| ARTIST | artist | 作者 | 2408| AUDIOALBUM | audio_album | 专辑 | 2409| DURATION | duration | 持续时间(单位:毫秒) | 2410| FAVORITE | favorite | 收藏 | 2411 2412## ImageVideoKey 2413 2414枚举,图片和视频文件关键信息。 2415 2416**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2417 2418| 名称 | 值 | 说明 | 2419| ------------- | ------------------- | ---------------------------------------------------------- | 2420| URI | uri | 文件uri | 2421| FILE_TYPE | file_type | 媒体文件类型 | 2422| DISPLAY_NAME | display_name | 显示名字 | 2423| DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) | 2424| DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) | 2425| TITLE | title | 文件标题 | 2426| DURATION | duration | 持续时间(单位:毫秒) | 2427| WIDTH | width | 图片宽度(单位:像素) | 2428| HEIGHT | height | 图片高度(单位:像素) | 2429| DATE_TAKEN | date_taken | 拍摄日期(文件拍照时间到1970年1月1日的秒数值) | 2430| ORIENTATION | orientation | 图片文件的方向 | 2431| FAVORITE | favorite | 收藏 | 2432 2433## AlbumKey 2434 2435枚举,相册关键信息。 2436 2437**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2438 2439| 名称 | 值 | 说明 | 2440| ------------- | ------------------- | ---------------------------------------------------------- | 2441| URI | uri | 相册uri | 2442| FILE_TYPE | file_type | 媒体文件类型 | 2443| ALBUM_NAME | album_name | 相册名字 | 2444| DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) | 2445| DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) | 2446 2447 2448## FetchOptions 2449 2450检索条件。 2451 2452**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2453 2454| 名称 | 类型 | 可读 | 可写 | 说明 | 2455| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ | 2456| fetchColumns | Array<string> | 是 | 是 | 检索条件,指定列名查询,如果该参数为空时默认查询uri、name、fileType。示例:<br />fetchColumns: "uri"| 2457| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是 | 是 | 谓词查询,显示过滤条件 | 2458 2459## AlbumFetchOptions 2460 2461相册检索条件。 2462 2463**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core 2464 2465| 名称 | 类型 | 可读 | 可写 | 说明 | 2466| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ | 2467| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是 | 是 | 谓词查询,显示过滤条件 | 2468 2469