1# @ohos.filemanagement.userFileManager (用户数据管理)(系统接口) 2 3该模块提供用户数据管理能力:包括访问、修改用户公共媒体数据信息等常用功能。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> - 本模块为系统接口。 9 10## 导入模块 11 12```ts 13import userFileManager from '@ohos.filemanagement.userFileManager'; 14``` 15 16## userFileManager.getUserFileMgr 17 18getUserFileMgr(context: Context): UserFileManager 19 20获取用户数据管理模块的实例,用于访问和修改用户公共媒体数据信息(如音频、视频、图片、文档等)。 21 22**模型约束**: 此接口仅可在Stage模型下使用。 23 24**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 25 26**参数:** 27 28| 参数名 | 类型 | 必填 | 说明 | 29| ------- | ------- | ---- | -------------------------- | 30| context | [Context](../apis-ability-kit/js-apis-inner-app-context.md) | 是 | 传入Ability实例的Context。 | 31 32**返回值:** 33 34| 类型 | 说明 | 35| ----------------------------- | :---- | 36| [UserFileManager](#userfilemanager) | 媒体库实例。 | 37 38**示例:** 39 40```ts 41// 此处获取的userFileManager实例mgr为全局对象,后续使用到mgr的地方默认为使用此处获取的对象,如未添加此段代码报mgr未定义的错误请自行添加 42// 请在组件内获取context,确保this.getUiContext().getHostContext()返回结果为UIAbilityContext 43import { common } from '@kit.AbilityKit'; 44let context: Context = this.getUIContext().getHostContext() as common.UIAbilityContext; 45let mgr = userFileManager.getUserFileMgr(context); 46``` 47 48## UserFileManager 49 50### getPhotoAssets 51 52getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void 53 54获取图片和视频资源,使用callback方式返回结果。 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接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 70 71| 错误码ID | 错误信息 | 72| -------- | ---------------------------------------- | 73| 13900020 | if type options is not FetchOptions. | 74 75**示例:** 76 77```ts 78import { dataSharePredicates } from '@kit.ArkData'; 79 80async function example() { 81 console.info('getPhotoAssets'); 82 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 83 let fetchOptions: userFileManager.FetchOptions = { 84 fetchColumns: [], 85 predicates: predicates 86 }; 87 88 mgr.getPhotoAssets(fetchOptions, async (err, fetchResult) => { 89 if (fetchResult != undefined) { 90 console.info('fetchResult success'); 91 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 92 if (fileAsset != undefined) { 93 console.info('fileAsset.displayName : ' + fileAsset.displayName); 94 } 95 } else { 96 console.error('fetchResult fail' + err); 97 } 98 }); 99} 100``` 101 102### getPhotoAssets 103 104getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>> 105 106获取图片和视频资源,使用Promise方式返回结果。 107 108**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 109 110**需要权限**:ohos.permission.READ_IMAGEVIDEO 111 112**参数:** 113 114| 参数名 | 类型 | 必填 | 说明 | 115| ------- | ------------------- | ---- | ---------------- | 116| options | [FetchOptions](#fetchoptions) | 是 | 图片和视频检索选项。 | 117 118**返回值:** 119 120| 类型 | 说明 | 121| --------------------------- | -------------- | 122| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise对象,返回图片和视频数据结果集。 | 123 124**错误码:** 125 126接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 127 128| 错误码ID | 错误信息 | 129| -------- | ---------------------------------------- | 130| 13900020 | if type options is not FetchOptions. | 131 132**示例:** 133 134```ts 135import { dataSharePredicates } from '@kit.ArkData'; 136 137async function example() { 138 console.info('getPhotoAssets'); 139 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 140 let fetchOptions: userFileManager.FetchOptions = { 141 fetchColumns: [], 142 predicates: predicates 143 }; 144 try { 145 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 146 if (fetchResult != undefined) { 147 console.info('fetchResult success'); 148 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 149 if (fileAsset != undefined) { 150 console.info('fileAsset.displayName :' + fileAsset.displayName); 151 } 152 } 153 } catch (err) { 154 console.error('getPhotoAssets failed, message = ', err); 155 } 156} 157``` 158### createPhotoAsset 159 160createPhotoAsset(displayName: string, albumUri: string, callback: AsyncCallback<FileAsset>): void 161 162指定待创建的图片或者视频的文件名和所在相册的uri,创建图片或视频资源,使用callback方式返回结果。 163 164**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 165 166**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 167 168**参数:** 169 170| 参数名 | 类型 | 必填 | 说明 | 171| -------- | ------------------------ | ---- | ------------------------- | 172| displayName | string | 是 | 创建的图片或者视频文件名。 | 173| albumUri | string | 是 | 创建的图片或者视频所在相册的uri。 | 174| callback | AsyncCallback<[FileAsset](#fileasset)> | 是 | callback返回创建的图片和视频结果。 | 175 176**错误码:** 177 178接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 179 180| 错误码ID | 错误信息 | 181| -------- | ---------------------------------------- | 182| 13900020 | if type displayName or albumUri is not string. | 183| 14000001 | if type displayName invalid. | 184 185**示例:** 186 187```ts 188import { dataSharePredicates } from '@kit.ArkData'; 189 190async function example() { 191 console.info('createPhotoAssetDemo'); 192 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 193 let fetchOptions: userFileManager.AlbumFetchOptions = { 194 predicates: predicates 195 }; 196 let albums: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(fetchOptions); 197 let album: userFileManager.Album = await albums.getFirstObject(); 198 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 199 mgr.createPhotoAsset(testFileName, album.albumUri, (err, fileAsset) => { 200 if (fileAsset != undefined) { 201 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 202 console.info('createPhotoAsset successfully'); 203 } else { 204 console.error('createPhotoAsset failed, message = ', err); 205 } 206 }); 207} 208``` 209 210### createPhotoAsset 211 212createPhotoAsset(displayName: string, callback: AsyncCallback<FileAsset>): void 213 214指定待创建的图片或者视频的文件名,创建图片或视频资源,使用callback方式返回结果。 215 216**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 217 218**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 219 220**参数:** 221 222| 参数名 | 类型 | 必填 | 说明 | 223| -------- | ------------------------ | ---- | ------------------------- | 224| displayName | string | 是 | 创建的图片或者视频文件名。 | 225| callback | AsyncCallback<[FileAsset](#fileasset)> | 是 | callback返回创建的图片和视频结果。 | 226 227**错误码:** 228 229接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 230 231| 错误码ID | 错误信息 | 232| -------- | ---------------------------------------- | 233| 13900020 | if type displayName is not string. | 234| 14000001 | if type displayName invalid. | 235 236**示例:** 237 238```ts 239async function example() { 240 console.info('createPhotoAssetDemo'); 241 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 242 mgr.createPhotoAsset(testFileName, (err, fileAsset) => { 243 if (fileAsset != undefined) { 244 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 245 console.info('createPhotoAsset successfully'); 246 } else { 247 console.error('createPhotoAsset failed, message = ', err); 248 } 249 }); 250} 251``` 252 253### createPhotoAsset 254 255createPhotoAsset(displayName: string, albumUri?: string): Promise<FileAsset> 256 257指定待创建的图片或者视频的文件名和所在相册的uri,创建图片或视频资源,使用Promise方式返回结果。 258 259**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 260 261**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 262 263**参数:** 264 265| 参数名 | 类型 | 必填 | 说明 | 266| -------- | ------------------------ | ---- | ------------------------- | 267| displayName | string | 是 | 创建的图片或者视频文件名。 | 268| albumUri | string | 否 | 创建的图片或者视频所在相册的uri。 | 269 270**返回值:** 271 272| 类型 | 说明 | 273| --------------------------- | -------------- | 274| Promise<[FileAsset](#fileasset)> | Promise对象,返回创建的图片和视频结果。 | 275 276**错误码:** 277 278接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 279 280| 错误码ID | 错误信息 | 281| -------- | ---------------------------------------- | 282| 13900020 | if type displayName or albumUri is not string. | 283 284**示例:** 285 286```ts 287async function example() { 288 console.info('createPhotoAssetDemo'); 289 try { 290 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 291 let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 292 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 293 console.info('createPhotoAsset successfully'); 294 } catch (err) { 295 console.error('createPhotoAsset failed, message = ', err); 296 } 297} 298``` 299 300### createPhotoAsset 301 302createPhotoAsset(displayName: string, createOption: PhotoCreateOptions, callback: AsyncCallback<FileAsset>): void 303 304指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用callback方式返回结果。 305 306**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 307 308**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 309 310**参数:** 311 312| 参数名 | 类型 | 必填 | 说明 | 313| -------- | ------------------------ | ---- | ------------------------- | 314| displayName | string | 是 | 创建的图片或者视频文件名。 | 315| createOption | [PhotoCreateOptions](#photocreateoptions10) | 是 | 图片或视频的创建选项。 | 316| callback | AsyncCallback<[FileAsset](#fileasset)> | 是 | callback返回创建的图片和视频结果。 | 317 318**错误码:** 319 320接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 321 322| 错误码ID | 错误信息 | 323| -------- | ---------------------------------------- | 324| 13900020 | if type displayName is not string. | 325| 14000001 | if type displayName invalid. | 326 327**示例:** 328 329```ts 330async function example() { 331 console.info('createPhotoAssetDemo'); 332 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 333 let createOption: userFileManager.PhotoCreateOptions = { 334 subType: userFileManager.PhotoSubType.DEFAULT 335 } 336 mgr.createPhotoAsset(testFileName, createOption, (err, fileAsset) => { 337 if (fileAsset != undefined) { 338 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 339 console.info('createPhotoAsset successfully'); 340 } else { 341 console.error('createPhotoAsset failed, message = ', err); 342 } 343 }); 344} 345``` 346 347### createPhotoAsset 348 349createPhotoAsset(displayName: string, createOption: PhotoCreateOptions): Promise<FileAsset> 350 351指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用Promise方式返回结果。 352 353**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 354 355**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 356 357**参数:** 358 359| 参数名 | 类型 | 必填 | 说明 | 360| -------- | ------------------------ | ---- | ------------------------- | 361| displayName | string | 是 | 创建的图片或者视频文件名。 | 362| createOption | [PhotoCreateOptions](#photocreateoptions10) | 是 | 图片或视频的创建选项。 | 363 364**返回值:** 365 366| 类型 | 说明 | 367| --------------------------- | -------------- | 368| Promise<[FileAsset](#fileasset)> | Promise对象,返回创建的图片和视频结果。 | 369 370**错误码:** 371 372接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 373 374| 错误码ID | 错误信息 | 375| -------- | ---------------------------------------- | 376| 13900020 | if type displayName is not string. | 377 378**示例:** 379 380```ts 381async function example() { 382 console.info('createPhotoAssetDemo'); 383 try { 384 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 385 let createOption: userFileManager.PhotoCreateOptions = { 386 subType: userFileManager.PhotoSubType.DEFAULT 387 } 388 let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName, createOption); 389 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 390 console.info('createPhotoAsset successfully'); 391 } catch (err) { 392 console.error('createPhotoAsset failed, message = ', err); 393 } 394} 395``` 396 397### createAudioAsset<sup>10+</sup> 398 399createAudioAsset(displayName: string, callback: AsyncCallback<FileAsset>): void 400 401创建音频文件资源,使用callback方式返回结果。 402 403**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 404 405**需要权限**:ohos.permission.WRITE_AUDIO 406 407**参数:** 408 409| 参数名 | 类型 | 必填 | 说明 | 410| -------- | ------------------------ | ---- | ------------------------- | 411| displayName | string | 是 | 创建的音频文件名。 | 412| callback | AsyncCallback<[FileAsset](#fileasset)> | 是 | callback返回创建的音频资源结果。 | 413 414**错误码:** 415 416接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 417 418| 错误码ID | 错误信息 | 419| -------- | ---------------------------------------- | 420| 13900020 | if type displayName is not string. | 421| 14000001 | if type displayName invalid. | 422 423**示例:** 424 425```ts 426async function example() { 427 console.info('createAudioAssetDemo'); 428 let testFileName: string = 'testFile' + Date.now() + '.mp3'; 429 mgr.createAudioAsset(testFileName, (err, fileAsset) => { 430 if (fileAsset != undefined) { 431 console.info('createAudioAsset file displayName' + fileAsset.displayName); 432 console.info('createAudioAsset successfully'); 433 } else { 434 console.error('createAudioAsset failed, message = ', err); 435 } 436 }); 437} 438``` 439 440### createAudioAsset<sup>10+</sup> 441 442createAudioAsset(displayName: string): Promise<FileAsset> 443 444创建音频文件资源,使用Promise方式返回结果。 445 446**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 447 448**需要权限**:ohos.permission.WRITE_AUDIO 449 450**参数:** 451 452| 参数名 | 类型 | 必填 | 说明 | 453| -------- | ------------------------ | ---- | ------------------------- | 454| displayName | string | 是 | 创建的音频文件名。 | 455 456**返回值:** 457 458| 类型 | 说明 | 459| --------------------------- | -------------- | 460| Promise<[FileAsset](#fileasset)> | Promise对象,返回创建的音频资源结果。 | 461 462**错误码:** 463 464接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 465 466| 错误码ID | 错误信息 | 467| -------- | ---------------------------------------- | 468| 13900020 | if type displayName is not string. | 469 470**示例:** 471 472```ts 473async function example() { 474 console.info('createAudioAssetDemo'); 475 try { 476 let testFileName: string = 'testFile' + Date.now() + '.mp3'; 477 let fileAsset: userFileManager.FileAsset = await mgr.createAudioAsset(testFileName); 478 console.info('createAudioAsset file displayName' + fileAsset.displayName); 479 console.info('createAudioAsset successfully'); 480 } catch (err) { 481 console.error('createAudioAsset failed, message = ', err); 482 } 483} 484``` 485 486### createAlbum<sup>10+</sup> 487 488createAlbum(name: string, callback: AsyncCallback<Album>): void 489 490创建相册,使用callback方式返回结果。 491 492待创建的相册名参数规格为: 493- 相册名字符串长度为1~255。 494- 不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 495- 英文字符大小写不敏感。 496- 相册名不允许重名。 497 498**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 499 500**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 501 502**参数:** 503 504| 参数名 | 类型 | 必填 | 说明 | 505| -------- | ------------------------ | ---- | ------------------------- | 506| name | string | 是 | 待创建相册的相册名。 | 507| callback | AsyncCallback<[Album](#album)> | 是 | callback返回创建的相册实例。 | 508 509**示例:** 510 511```ts 512async function example() { 513 console.info('createAlbumDemo'); 514 let albumName: string = 'newAlbumName' + new Date().getTime(); 515 mgr.createAlbum(albumName, (err, album) => { 516 if (err) { 517 console.error('createAlbumCallback failed with err: ' + err); 518 return; 519 } 520 console.info('createAlbumCallback successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri); 521 }); 522} 523``` 524 525### createAlbum<sup>10+</sup> 526 527createAlbum(name: string): Promise<Album> 528 529创建相册,使用Promise方式返回结果。 530 531待创建的相册名参数规格为: 532- 相册名字符串长度为1~255。 533- 不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 534- 英文字符大小写不敏感。 535- 相册名不允许重名。 536 537**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 538 539**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 540 541**参数:** 542 543| 参数名 | 类型 | 必填 | 说明 | 544| -------- | ------------------------ | ---- | ------------------------- | 545| name | string | 是 | 待创建相册的相册名。 | 546 547**返回值:** 548 549| 类型 | 说明 | 550| --------------------------- | -------------- | 551| Promise<[Album](#album)> | Promise对象,返回创建的相册实例。 | 552 553**示例:** 554 555```ts 556import { BusinessError } from '@kit.BasicServicesKit'; 557 558async function example() { 559 console.info('createAlbumDemo'); 560 let albumName: string = 'newAlbumName' + new Date().getTime(); 561 mgr.createAlbum(albumName).then((album) => { 562 console.info('createAlbumPromise successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri); 563 }).catch((err: BusinessError) => { 564 console.error('createAlbumPromise failed with err: ' + err); 565 }); 566} 567``` 568 569### deleteAlbums<sup>10+</sup> 570 571deleteAlbums(albums: Array<Album>, callback: AsyncCallback<void>): void 572 573删除相册,使用callback方式返回结果。 574 575删除相册前需先确保相册存在,只能删除用户相册。 576 577**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 578 579**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 580 581**参数:** 582 583| 参数名 | 类型 | 必填 | 说明 | 584| -------- | ------------------------ | ---- | ------------------------- | 585| albums | Array<[Album](#album)> | 是 | 待删除相册的数组。 | 586| callback | AsyncCallback<void> | 是 | callback返回void。 | 587 588**示例:** 589 590```ts 591import { dataSharePredicates } from '@kit.ArkData'; 592 593async function example() { 594 // 示例代码为删除相册名为newAlbumName的相册。 595 console.info('deleteAlbumsDemo'); 596 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 597 predicates.equalTo('album_name', 'newAlbumName'); 598 let fetchOptions: userFileManager.FetchOptions = { 599 fetchColumns: [], 600 predicates: predicates 601 }; 602 let fetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC, fetchOptions); 603 let album: userFileManager.Album = await fetchResult.getFirstObject(); 604 mgr.deleteAlbums([album], (err) => { 605 if (err) { 606 console.error('deletePhotoAlbumsCallback failed with err: ' + err); 607 return; 608 } 609 console.info('deletePhotoAlbumsCallback successfully'); 610 }); 611 fetchResult.close(); 612} 613``` 614 615### deleteAlbums<sup>10+</sup> 616 617deleteAlbums(albums: Array<Album>): Promise<void> 618 619删除相册,使用Promise方式返回结果。 620 621删除相册前需先确保相册存在,只能删除用户相册。 622 623**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 624 625**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 626 627**参数:** 628 629| 参数名 | 类型 | 必填 | 说明 | 630| -------- | ------------------------ | ---- | ------------------------- | 631| albums | Array<[Album](#album)> | 是 | 待删除相册的数组。 | 632 633**返回值:** 634 635| 类型 | 说明 | 636| --------------------------- | -------------- | 637| Promise<void> | Promise对象,返回void。 | 638 639**示例:** 640 641```ts 642import { dataSharePredicates } from '@kit.ArkData'; 643import { BusinessError } from '@kit.BasicServicesKit'; 644 645async function example() { 646 // 示例代码为删除相册名为newAlbumName的相册。 647 console.info('deleteAlbumsDemo'); 648 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 649 predicates.equalTo('album_name', 'newAlbumName'); 650 let fetchOptions: userFileManager.FetchOptions = { 651 fetchColumns: [], 652 predicates: predicates 653 }; 654 let fetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC, fetchOptions); 655 let album: userFileManager.Album = await fetchResult.getFirstObject(); 656 mgr.deleteAlbums([album]).then(() => { 657 console.info('deletePhotoAlbumsPromise successfully'); 658 }).catch((err: BusinessError) => { 659 console.error('deletePhotoAlbumsPromise failed with err: ' + err); 660 }); 661 fetchResult.close(); 662} 663``` 664 665### getAlbums<sup>10+</sup> 666 667getAlbums(type: AlbumType, subType: AlbumSubType, options: FetchOptions, callback: AsyncCallback<FetchResult<Album>>): void 668 669根据检索选项和相册类型获取相册,使用callback方式返回结果。 670 671该接口不支持获取隐藏相册,请使用[getHiddenAlbums](../apis-media-library-kit/js-apis-photoAccessHelper-sys.md#gethiddenalbums11)获得。 672 673获取相册前需先保证相册存在。 674 675**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 676 677**需要权限**:ohos.permission.READ_IMAGEVIDEO 678 679**参数:** 680 681| 参数名 | 类型 | 必填 | 说明 | 682| -------- | ------------------------ | ---- | ------------------------- | 683| type | [AlbumType](#albumtype10) | 是 | 相册类型。 | 684| subType | [AlbumSubType](#albumsubtype10) | 是 | 相册子类型。 | 685| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 686| callback | AsyncCallback<[FetchResult](#fetchresult)<[Album](#album)>> | 是 | callback返回获取相册的结果集。 | 687 688**错误码:** 689 690接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 691 692| 错误码ID | 错误信息 | 693| -------- | ---------------------------------------- | 694| 13900020 | if type options is not FetchOption. | 695 696**示例:** 697 698```ts 699import { dataSharePredicates } from '@kit.ArkData'; 700 701async function example() { 702 // 示例代码中为获取相册名为newAlbumName的相册。 703 console.info('getAlbumsDemo'); 704 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 705 predicates.equalTo('album_name', 'newAlbumName'); 706 let fetchOptions: userFileManager.FetchOptions = { 707 fetchColumns: [], 708 predicates: predicates 709 }; 710 mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC, fetchOptions, async (err, fetchResult) => { 711 if (err) { 712 console.error('getAlbumsCallback failed with err: ' + err); 713 return; 714 } 715 if (fetchResult == undefined) { 716 console.error('getAlbumsCallback fetchResult is undefined'); 717 return; 718 } 719 let album: userFileManager.Album = await fetchResult.getFirstObject(); 720 console.info('getAlbumsCallback successfully, albumName: ' + album.albumName); 721 fetchResult.close(); 722 }); 723} 724``` 725 726### getAlbums<sup>10+</sup> 727 728getAlbums(type: AlbumType, subType: AlbumSubType, callback: AsyncCallback<FetchResult<Album>>): void 729 730根据相册类型获取相册,使用callback方式返回结果。 731 732该接口不支持获取隐藏相册,请使用[getHiddenAlbums](../apis-media-library-kit/js-apis-photoAccessHelper-sys.md#gethiddenalbums11)获得。 733 734获取相册前需先保证相册存在。 735 736**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 737 738**需要权限**:ohos.permission.READ_IMAGEVIDEO 739 740**参数:** 741 742| 参数名 | 类型 | 必填 | 说明 | 743| -------- | ------------------------ | ---- | ------------------------- | 744| type | [AlbumType](#albumtype10) | 是 | 相册类型。 | 745| subType | [AlbumSubType](#albumsubtype10) | 是 | 相册子类型。 | 746| callback | AsyncCallback<[FetchResult](#fetchresult)<[Album](#album)>> | 是 | callback返回获取相册的结果集。 | 747 748**错误码:** 749 750接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 751 752| 错误码ID | 错误信息 | 753| -------- | ---------------------------------------- | 754| 13900020 | if type options is not FetchOption. | 755 756**示例:** 757 758```ts 759async function example() { 760 // 示例代码中为获取统相册VIDEO,默认已预置。 761 console.info('getAlbumsDemo'); 762 mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.VIDEO, async (err, fetchResult) => { 763 if (err) { 764 console.error('getAlbumsCallback failed with err: ' + err); 765 return; 766 } 767 if (fetchResult == undefined) { 768 console.error('getAlbumsCallback fetchResult is undefined'); 769 return; 770 } 771 let album: userFileManager.Album = await fetchResult.getFirstObject(); 772 console.info('getAlbumsCallback successfully, albumUri: ' + album.albumUri); 773 fetchResult.close(); 774 }); 775} 776``` 777 778### getAlbums<sup>10+</sup> 779 780getAlbums(type: AlbumType, subType: AlbumSubType, options?: FetchOptions): Promise<FetchResult<Album>> 781 782根据检索选项和相册类型获取相册,使用Promise方式返回结果。 783 784该接口不支持获取隐藏相册,请使用[getHiddenAlbums](../apis-media-library-kit/js-apis-photoAccessHelper-sys.md#gethiddenalbums11)获得。 785 786获取相册前需先保证相册存在。 787 788**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 789 790**需要权限**:ohos.permission.READ_IMAGEVIDEO 791 792**参数:** 793 794| 参数名 | 类型 | 必填 | 说明 | 795| -------- | ------------------------ | ---- | ------------------------- | 796| type | [AlbumType](#albumtype10) | 是 | 相册类型。 | 797| subType | [AlbumSubType](#albumsubtype10) | 是 | 相册子类型。 | 798| options | [FetchOptions](#fetchoptions) | 否 | 检索选项,不填时默认根据相册类型检索。 | 799 800**返回值:** 801 802| 类型 | 说明 | 803| --------------------------- | -------------- | 804| Promise<[FetchResult](#fetchresult)<[Album](#album)>> | Promise对象,返回获取相册的结果集。 | 805 806**错误码:** 807 808接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 809 810| 错误码ID | 错误信息 | 811| -------- | ---------------------------------------- | 812| 13900020 | if type options is not FetchOption. | 813 814**示例:** 815 816```ts 817import { dataSharePredicates } from '@kit.ArkData'; 818import { BusinessError } from '@kit.BasicServicesKit'; 819 820async function example() { 821 // 示例代码中为获取相册名为newAlbumName的相册。 822 console.info('getAlbumsDemo'); 823 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 824 predicates.equalTo('album_name', 'newAlbumName'); 825 let fetchOptions: userFileManager.FetchOptions = { 826 fetchColumns: [], 827 predicates: predicates 828 }; 829 mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC, fetchOptions).then( async (fetchResult) => { 830 if (fetchResult == undefined) { 831 console.error('getAlbumsPromise fetchResult is undefined'); 832 return; 833 } 834 let album: userFileManager.Album = await fetchResult.getFirstObject(); 835 console.info('getAlbumsPromise successfully, albumName: ' + album.albumName); 836 fetchResult.close(); 837 }).catch((err: BusinessError) => { 838 console.error('getAlbumsPromise failed with err: ' + err); 839 }); 840} 841``` 842 843### getPhotoAlbums 844 845getPhotoAlbums(options: AlbumFetchOptions, callback: AsyncCallback<FetchResult<Album>>): void 846 847获取相册,使用callback方式返回结果。 848 849该接口不支持获取隐藏相册,请使用[getHiddenAlbums](../apis-media-library-kit/js-apis-photoAccessHelper-sys.md#gethiddenalbums11)获得。 850 851此接口即将废弃,请使用[getAlbums<sup>10+</sup>](#getalbums10)的新接口。 852 853**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 854 855**需要权限**:ohos.permission.READ_IMAGEVIDEO 856 857**参数:** 858 859| 参数名 | 类型 | 必填 | 说明 | 860| -------- | ------------------------ | ---- | ------------------------- | 861| options | [AlbumFetchOptions](#albumfetchoptions) | 是 | 相册检索选项。 | 862| callback | AsyncCallback<[FetchResult](#fetchresult)<[Album](#album)>> | 是 | callback返回相册检索结果。 | 863 864**错误码:** 865 866接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 867 868| 错误码ID | 错误信息 | 869| -------- | ---------------------------------------- | 870| 13900020 | if type options is not AlbumFetchOptions. | 871 872**示例:** 873 874```ts 875import { dataSharePredicates } from '@kit.ArkData'; 876 877async function example() { 878 console.info('getPhotoAlbumsDemo'); 879 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 880 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 881 predicates: predicates 882 }; 883 884 mgr.getPhotoAlbums(albumFetchOptions, (err, fetchResult) => { 885 if (fetchResult != undefined) { 886 console.info('albums.count = ' + fetchResult.getCount()); 887 fetchResult.getFirstObject((err, album) => { 888 if (album != undefined) { 889 console.info('first album.albumName = ' + album.albumName); 890 } else { 891 console.error('album is undefined, err = ', err); 892 } 893 }); 894 } else { 895 console.error('getPhotoAlbums fail, message = ', err); 896 } 897 }); 898} 899``` 900 901### getPhotoAlbums 902 903getPhotoAlbums(options: AlbumFetchOptions): Promise<FetchResult<Album>> 904 905获取相册,使用Promise方式返回结果。 906 907该接口不支持获取隐藏相册,请使用[getHiddenAlbums](../apis-media-library-kit/js-apis-photoAccessHelper-sys.md#gethiddenalbums11)获得。 908 909此接口即将废弃,请使用[getAlbums<sup>10+</sup>](#getalbums10)的新接口。 910 911**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 912 913**需要权限**:ohos.permission.READ_IMAGEVIDEO 914 915**参数:** 916 917| 参数名 | 类型 | 必填 | 说明 | 918| -------- | ------------------------ | ---- | ------------------------- | 919| options | [AlbumFetchOptions](#albumfetchoptions) | 是 | 相册检索选项。 | 920 921**返回值:** 922 923| 类型 | 说明 | 924| --------------------------- | -------------- | 925| Promise<[FetchResult](#fetchresult)<[Album](#album)>> | Promise对象,返回相册检索结果。 | 926 927**错误码:** 928 929接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 930 931| 错误码ID | 错误信息 | 932| -------- | ---------------------------------------- | 933| 13900020 | if type options is not AlbumFetchOptions. | 934 935**示例:** 936 937```ts 938import { dataSharePredicates } from '@kit.ArkData'; 939 940async function example() { 941 console.info('getPhotoAlbumsDemo'); 942 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 943 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 944 predicates: predicates 945 }; 946 try { 947 let fetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 948 console.info('album.count = ' + fetchResult.getCount()); 949 const album: userFileManager.Album = await fetchResult.getFirstObject(); 950 console.info('first album.albumName = ' + album.albumName); 951 } catch (err) { 952 console.error('getPhotoAlbums fail, message = ' + err); 953 } 954} 955``` 956 957### getPrivateAlbum 958 959getPrivateAlbum(type: PrivateAlbumType, callback: AsyncCallback<FetchResult<PrivateAlbum>>): void 960 961获取系统相册,使用 callback 方式返回系统相册的数组。 962 963此接口即将废弃,请使用[getAlbums<sup>10+</sup>](#getalbums10)的新接口。 964 965**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 966 967**需要权限**:ohos.permission.READ_IMAGEVIDEO 968 969**参数:** 970 971| 参数名 | 类型 | 必填 | 说明 | 972| -------- | ------------------------ | ---- | ------------------------- | 973| type | [PrivateAlbumType](#privatealbumtype) | 是 | 系统相册类型。 | 974| callback | AsyncCallback<[FetchResult](#fetchresult)<[PrivateAlbum](#privatealbum)>> | 是 | callback返回相册检索结果。 | 975 976**错误码:** 977 978接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 979 980| 错误码ID | 错误信息 | 981| -------- | ---------------------------------------- | 982| 13900020 | if type type is not PrivateAlbumType. | 983 984**示例:** 985 986```ts 987async function example() { 988 console.info('getPrivateAlbumDemo'); 989 mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH, async (err, fetchResult) => { 990 if (fetchResult != undefined) { 991 let trashAlbum: userFileManager.PrivateAlbum = await fetchResult.getFirstObject(); 992 console.info('first album.albumName = ' + trashAlbum.albumName); 993 } else { 994 console.error('getPrivateAlbum failed. message = ', err); 995 } 996 }); 997} 998``` 999 1000### getPrivateAlbum 1001 1002getPrivateAlbum(type: PrivateAlbumType): Promise<FetchResult<PrivateAlbum>> 1003 1004获取系统相册,使用Promise方式返回结果。 1005 1006此接口即将废弃,请使用[getAlbums<sup>10+</sup>](#getalbums10)的新接口。 1007 1008**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1009 1010**需要权限**:ohos.permission.READ_IMAGEVIDEO 1011 1012**参数:** 1013 1014| 参数名 | 类型 | 必填 | 说明 | 1015| -------- | ------------------------ | ---- | ------------------------- | 1016| type | [PrivateAlbumType](#privatealbumtype) | 是 | 系统相册类型。 | 1017 1018**返回值:** 1019 1020| 类型 | 说明 | 1021| --------------------------- | -------------- | 1022| Promise<[FetchResult](#fetchresult)<[PrivateAlbum](#privatealbum)>> | Promise对象,返回相册检索结果。 | 1023 1024**错误码:** 1025 1026接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 1027 1028| 错误码ID | 错误信息 | 1029| -------- | ---------------------------------------- | 1030| 13900020 | if type type is not PrivateAlbumType. | 1031 1032**示例:** 1033 1034```ts 1035async function example() { 1036 console.info('getPrivateAlbumDemo'); 1037 try { 1038 let fetchResult: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 1039 let trashAlbum: userFileManager.PrivateAlbum = await fetchResult.getFirstObject(); 1040 console.info('first album.albumName = ' + trashAlbum.albumName); 1041 } catch (err) { 1042 console.error('getPrivateAlbum failed. message = ', err); 1043 } 1044} 1045``` 1046 1047### getAudioAssets 1048 1049getAudioAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void 1050 1051获取音频文件,使用callback方式返回结果。 1052 1053**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1054 1055**需要权限**:ohos.permission.READ_AUDIO 1056 1057**参数:** 1058 1059| 参数名 | 类型 | 必填 | 说明 | 1060| -------- | ------------------------ | ---- | ------------------------- | 1061| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 1062| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback返回音频检索结果。 | 1063 1064**错误码:** 1065 1066接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 1067 1068| 错误码ID | 错误信息 | 1069| -------- | ---------------------------------------- | 1070| 13900020 | if type options is not FetchOptions. | 1071 1072**示例:** 1073 1074```ts 1075import { dataSharePredicates } from '@kit.ArkData'; 1076 1077async function example() { 1078 console.info('getAudioAssets'); 1079 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1080 let fetchOptions: userFileManager.FetchOptions = { 1081 fetchColumns: [], 1082 predicates: predicates 1083 }; 1084 1085 mgr.getAudioAssets(fetchOptions, async (err, fetchResult) => { 1086 if (fetchResult != undefined) { 1087 console.info('fetchFileResult success'); 1088 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1089 if (fileAsset != undefined) { 1090 console.info('fileAsset.displayName :' + fileAsset.displayName); 1091 } 1092 } else { 1093 console.error('fetchFileResult fail' + err); 1094 } 1095 }); 1096} 1097``` 1098 1099### getAudioAssets 1100 1101getAudioAssets(options: FetchOptions): Promise<FetchResult<FileAsset>> 1102 1103 1104获取音频文件,使用promise方式返回结果。 1105 1106**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1107 1108**需要权限**:ohos.permission.READ_AUDIO 1109 1110**参数:** 1111 1112| 参数名 | 类型 | 必填 | 说明 | 1113| -------- | ------------------------ | ---- | ------------------------- | 1114| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 1115 1116**返回值:** 1117 1118| 类型 | 说明 | 1119| --------------------------- | -------------- | 1120| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise对象,返回音频检索结果。 | 1121 1122**错误码:** 1123 1124接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 1125 1126| 错误码ID | 错误信息 | 1127| -------- | ---------------------------------------- | 1128| 13900020 | if type options is not FetchOptions. | 1129 1130**示例:** 1131 1132```ts 1133import { dataSharePredicates } from '@kit.ArkData'; 1134 1135async function example() { 1136 console.info('getAudioAssets'); 1137 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1138 let fetchOptions: userFileManager.FetchOptions = { 1139 fetchColumns: [], 1140 predicates: predicates 1141 }; 1142 try { 1143 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getAudioAssets(fetchOptions); 1144 if (fetchResult != undefined) { 1145 console.info('fetchFileResult success'); 1146 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1147 if (fileAsset != undefined) { 1148 console.info('fileAsset.displayName :' + fileAsset.displayName); 1149 } 1150 } 1151 } catch (err) { 1152 console.error('getAudioAssets failed, message = ', err); 1153 } 1154} 1155``` 1156 1157### delete 1158 1159delete(uri: string, callback: AsyncCallback<void>): void 1160 1161删除媒体文件,删除的文件进入到回收站。 1162 1163**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 1164 1165**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1166 1167**参数:** 1168 1169| 参数名 | 类型 | 必填 | 说明 | 1170| -------- | ------------------------- | ---- | ---------- | 1171| uri | string | 是 | 媒体文件uri。 | 1172| callback | AsyncCallback<void> | 是 | callback返回void。 | 1173 1174**错误码:** 1175 1176接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 1177 1178| 错误码ID | 错误信息 | 1179| -------- | ---------------------------------------- | 1180| 13900020 | if type uri is not string. | 1181 1182**示例:** 1183 1184```ts 1185import { dataSharePredicates } from '@kit.ArkData'; 1186 1187async function example() { 1188 console.info('deleteAssetDemo'); 1189 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1190 let fetchOptions: userFileManager.FetchOptions = { 1191 fetchColumns: [], 1192 predicates: predicates 1193 }; 1194 try { 1195 const fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 1196 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1197 1198 1199 if (asset == undefined) { 1200 console.error('asset not exist'); 1201 return; 1202 } 1203 mgr.delete(asset.uri, (err) => { 1204 if (err == undefined) { 1205 console.info('delete successfully'); 1206 } else { 1207 console.error('delete failed with error: ' + err); 1208 } 1209 }); 1210 } catch (err) { 1211 console.error('fetch failed, message =', err); 1212 } 1213} 1214``` 1215 1216### delete 1217 1218delete(uri: string): Promise<void> 1219 1220删除媒体文件,删除的文件进入到回收站。 1221 1222**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 1223 1224**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1225 1226**参数:** 1227 1228| 参数名 | 类型 | 必填 | 说明 | 1229| -------- | ------------------------- | ---- | ---------- | 1230| uri | string | 是 | 媒体文件uri。 | 1231 1232**返回值:** 1233 1234| 类型 | 说明 | 1235| --------------------------------------- | ----------------- | 1236| Promise<void>| Promise对象,返回void。 | 1237 1238**错误码:** 1239 1240接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 1241 1242| 错误码ID | 错误信息 | 1243| -------- | ---------------------------------------- | 1244| 13900020 | if type uri is not string. | 1245 1246**示例:** 1247 1248```ts 1249import { dataSharePredicates } from '@kit.ArkData'; 1250 1251async function example() { 1252 console.info('deleteDemo'); 1253 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1254 let fetchOptions: userFileManager.FetchOptions = { 1255 fetchColumns: [], 1256 predicates: predicates 1257 }; 1258 try { 1259 const fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 1260 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1261 if (asset == undefined) { 1262 console.error('asset not exist'); 1263 return; 1264 } 1265 await mgr.delete(asset.uri); 1266 console.info('delete successfully'); 1267 } catch (err) { 1268 console.error('delete failed with error: ' + err); 1269 } 1270} 1271``` 1272 1273### getActivePeers 1274 1275getActivePeers(callback: AsyncCallback<Array<PeerInfo>>): void 1276 1277获取在线对端设备的信息,使用callback方式返回异步结果。 1278 1279**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 1280 1281**参数:** 1282 1283| 参数名 | 类型 | 必填 | 说明 | 1284| -------- | --------------------------------- | ---- | ------------ | 1285| callback | AsyncCallback<Array<[PeerInfo](#peerinfo)>> | 是 | 返回在线设备列表。 | 1286 1287**示例:** 1288 1289```ts 1290async function example() { 1291 console.info('getActivePeersDemo'); 1292 mgr.getActivePeers((err, devicesInfo) => { 1293 if (devicesInfo != undefined) { 1294 console.log('getActivePeers succeed.'); 1295 for (let i = 0; i < devicesInfo.length; i++) { 1296 console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); 1297 } 1298 } else { 1299 console.error('getActivePeers failed. message = ', err); 1300 } 1301 }); 1302} 1303``` 1304 1305### getActivePeers 1306 1307getActivePeers(): Promise<Array<PeerInfo>> 1308 1309获取在线对端设备的信息,使用promise方式返回异步结果。 1310 1311**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 1312 1313**返回值:** 1314 1315| 类型 | 说明 | 1316| --------------------------- | ----------------------------- | 1317| Promise<Array<[PeerInfo](#peerinfo)>> | Promise对象,返回在线设备列表。 | 1318 1319**示例:** 1320 1321```ts 1322async function example() { 1323 console.info('getActivePeersDemo'); 1324 try { 1325 let devicesInfo: Array<userFileManager.PeerInfo> = await mgr.getActivePeers(); 1326 if (devicesInfo != undefined) { 1327 console.log('getActivePeers succeed.'); 1328 for (let i = 0; i < devicesInfo.length; i++) { 1329 console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); 1330 } 1331 } else { 1332 console.error('get distributed fail'); 1333 } 1334 } catch (err) { 1335 console.error('getActivePeers failed. message = ', err); 1336 } 1337} 1338``` 1339 1340### getAllPeers 1341 1342getAllPeers(callback: AsyncCallback<Array<PeerInfo>>): void 1343 1344获取所有对端设备的信息,使用callback方式返回异步结果。 1345 1346**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 1347 1348**参数:** 1349 1350| 参数名 | 类型 | 必填 | 说明 | 1351| -------- | --------------------------------- | ---- | ------------ | 1352| callback | AsyncCallback<Array<[PeerInfo](#peerinfo)>> | 是 | 返回在线设备列表。 | 1353 1354**示例:** 1355 1356```ts 1357async function example() { 1358 console.info('getAllPeersDemo'); 1359 mgr.getAllPeers((err, devicesInfo) => { 1360 if (devicesInfo != undefined) { 1361 console.log('getAllPeers succeed.'); 1362 for (let i = 0; i < devicesInfo.length; i++) { 1363 console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); 1364 } 1365 } else { 1366 console.error('getAllPeers failed. message = ', err); 1367 } 1368 }); 1369} 1370``` 1371 1372### getAllPeers 1373 1374getAllPeers(): Promise<Array<PeerInfo>> 1375 1376获取所有对端设备的信息,使用promise方式返回异步结果。 1377 1378**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 1379 1380**返回值:** 1381 1382| 类型 | 说明 | 1383| --------------------------- | ----------------------------- | 1384| Promise<Array<[PeerInfo](#peerinfo)>> | Promise对象,返回所有设备列表。 | 1385 1386**示例:** 1387 1388```ts 1389async function example() { 1390 console.info('getAllPeersDemo'); 1391 try { 1392 let devicesInfo: Array<userFileManager.PeerInfo> = await mgr.getAllPeers(); 1393 1394 if (devicesInfo != undefined) { 1395 console.log('getAllPeers succeed.'); 1396 for (let i = 0; i < devicesInfo.length; i++) { 1397 console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); 1398 } 1399 } else { 1400 console.error('get distributed fail'); 1401 } 1402 } catch (err) { 1403 console.error('getAllPeers failed. message = ', err); 1404 } 1405} 1406``` 1407 1408### getPhotoIndex<sup>10+</sup> 1409 1410getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions, callback: AsyncCallback<number>): void 1411 1412获取相册中图片或视频的位置,使用callback方式返回结果。 1413 1414**系统接口**:此接口为系统接口。 1415 1416**需要权限**:ohos.permission.READ_IMAGEVIDEO 1417 1418**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1419 1420**参数:** 1421 1422| 参数名 | 类型 | 必填 | 说明 | 1423| -------- | ------------------------- | ---- | ---------- | 1424| photoUri | string | 是 | 所查询的图库资源的uri。 | 1425| albumUri | string | 是 | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。 | 1426| options | [FetchOptions](#fetchoptions) | 是 | 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。 | 1427| callback | AsyncCallback<number>| 是 | callback返回相册中资源的索引。 | 1428 1429**错误码:** 1430 1431接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1432 1433| 错误码ID | 错误信息 | 1434| -------- | ---------------------------------------- | 1435| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1436 1437**示例:** 1438 1439```ts 1440import { dataSharePredicates } from '@kit.ArkData'; 1441 1442async function example() { 1443 try { 1444 console.info('getPhotoIndexDemo'); 1445 let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1446 let fetchOp: userFileManager.FetchOptions = { 1447 fetchColumns: [], 1448 predicates: predicatesForGetAsset 1449 }; 1450 // Obtain the uri of the album 1451 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.FAVORITE, fetchOp); 1452 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 1453 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1454 predicates.orderByAsc(userFileManager.ImageVideoKey.DATE_MODIFIED.toString()); 1455 let fetchOptions: userFileManager.FetchOptions = { 1456 fetchColumns: [userFileManager.ImageVideoKey.DATE_MODIFIED.toString()], 1457 predicates: predicates 1458 }; 1459 let photoFetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOptions); 1460 let expectIndex = 1; 1461 // Obtain the uri of the second file 1462 let photoAsset: userFileManager.FileAsset = await photoFetchResult.getPositionObject(expectIndex); 1463 mgr.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions, (err, index) => { 1464 if (err == undefined) { 1465 console.info(`getPhotoIndex successfully and index is : ${index}`); 1466 } else { 1467 console.error(`getPhotoIndex failed;`); 1468 } 1469 }); 1470 } catch (error) { 1471 console.error(`getPhotoIndex failed; error: ${error}`); 1472 } 1473} 1474``` 1475 1476### getPhotoIndex<sup>10+</sup> 1477 1478getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise<number> 1479 1480获取相册中图片或视频的位置,使用Promise方式返回结果。 1481 1482**系统接口**:此接口为系统接口。 1483 1484**需要权限**:ohos.permission.READ_IMAGEVIDEO 1485 1486**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1487 1488**参数:** 1489 1490| 参数名 | 类型 | 必填 | 说明 | 1491| -------- | ------------------------- | ---- | ---------- | 1492| photoUri | string | 是 | 所查询的图库资源的uri。 | 1493| albumUri | string | 是 | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。 | 1494| options | [FetchOptions](#fetchoptions) | 是 | 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。 | 1495 1496**返回值:** 1497 1498| 类型 | 说明 | 1499| --------------------------------------- | ----------------- | 1500| Promise<number>| 返回相册中资源的索引。 | 1501 1502**错误码:** 1503 1504接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1505 1506| 错误码ID | 错误信息 | 1507| -------- | ---------------------------------------- | 1508| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1509 1510**示例:** 1511 1512```ts 1513import { dataSharePredicates } from '@kit.ArkData'; 1514import { BusinessError } from '@kit.BasicServicesKit'; 1515 1516async function example() { 1517 try { 1518 console.info('getPhotoIndexDemo'); 1519 let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1520 let fetchOp: userFileManager.FetchOptions = { 1521 fetchColumns: [], 1522 predicates: predicatesForGetAsset 1523 }; 1524 // Obtain the uri of the album 1525 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.FAVORITE, fetchOp); 1526 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 1527 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1528 predicates.orderByAsc(userFileManager.ImageVideoKey.DATE_MODIFIED.toString()); 1529 let fetchOptions: userFileManager.FetchOptions = { 1530 fetchColumns: [userFileManager.ImageVideoKey.DATE_MODIFIED.toString()], 1531 predicates: predicates 1532 }; 1533 let photoFetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOptions); 1534 let expectIndex = 1; 1535 // Obtain the uri of the second file 1536 let photoAsset: userFileManager.FileAsset = await photoFetchResult.getPositionObject(expectIndex); 1537 mgr.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions).then((index) => { 1538 console.info(`getPhotoIndex successfully and index is : ${index}`); 1539 }).catch((err: BusinessError) => { 1540 console.error(`getPhotoIndex failed; error: ${err}`); 1541 }); 1542 } catch (error) { 1543 console.error(`getPhotoIndex failed; error: ${error}`); 1544 } 1545} 1546``` 1547 1548### release 1549 1550release(callback: AsyncCallback<void>): void 1551 1552释放UserFileManager实例,使用callback方式返回结果。 1553当后续不需要使用UserFileManager实例中的方法时调用。 1554 1555**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1556 1557**参数:** 1558 1559| 参数名 | 类型 | 必填 | 说明 | 1560| -------- | ------------------------- | ---- | -------------------- | 1561| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 1562 1563**示例:** 1564 1565```ts 1566async function example() { 1567 console.info('releaseDemo'); 1568 mgr.release((err) => { 1569 if (err != undefined) { 1570 console.error('release failed. message = ', err); 1571 } else { 1572 console.info('release ok.'); 1573 } 1574 }); 1575} 1576``` 1577 1578### release 1579 1580release(): Promise<void> 1581 1582释放UserFileManager实例,使用Promise方式返回结果。 1583当后续不需要使用UserFileManager 实例中的方法时调用。 1584 1585**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1586 1587**返回值:** 1588 1589| 类型 | 说明 | 1590| ------------------- | --------------------------------- | 1591| Promise<void> | Promise对象,返回void。 | 1592 1593**示例:** 1594 1595```ts 1596async function example() { 1597 console.info('releaseDemo'); 1598 try { 1599 await mgr.release(); 1600 console.info('release ok.'); 1601 } catch (err) { 1602 console.error('release failed. message = ', err); 1603 } 1604} 1605``` 1606 1607### on<sup>10+</sup> 1608 1609on(uri: string, forSubUri: boolean, callback: Callback<ChangeData>) : void 1610 1611对指定uri注册监听,使用callback方式返回异步结果。 1612 1613**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1614 1615**参数:** 1616 1617| 参数名 | 类型 | 必填 | 说明 | 1618| --------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 1619| uri | string | 是 | FileAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri10)的值。 | 1620| forSubUri | boolean | 是 | 是否模糊监听。uri为相册uri时,forSubUri 为true能监听到相册中文件的变化;如果是false只能监听相册本身变化。uri为fileAsset时,forSubUri 为true、false没有区别。uri为DefaultChangeUri时,forSubUri必须为true;如果为false将找不到该uri,收不到任何消息。 | 1621| callback | Callback<[ChangeData](#changedata10)> | 是 | 返回要监听的[ChangeData](#changedata10)。注:uri可以注册多个不同的callback监听,[off<sup>10+</sup>](#off10)可以关闭该uri所有监听,也可以关闭指定callback的监听。 | 1622 1623**错误码:** 1624 1625接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 1626 1627| 错误码ID | 错误信息 | 1628| -------- | ---------------------------------------- | 1629| 13900020 | if parameter is invalid. | 1630 1631**示例:** 1632 1633```ts 1634import { dataSharePredicates } from '@kit.ArkData'; 1635 1636async function example() { 1637 console.info('onDemo'); 1638 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1639 let fetchOptions: userFileManager.FetchOptions = { 1640 fetchColumns: [], 1641 predicates: predicates 1642 }; 1643 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 1644 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1645 if (fileAsset != undefined) { 1646 console.info('fileAsset.displayName : ' + fileAsset.displayName); 1647 } 1648 let onCallback1 = (changeData: userFileManager.ChangeData) => { 1649 console.info('onCallback1 success, changData: ' + JSON.stringify(changeData)); 1650 //file had changed, do something 1651 } 1652 let onCallback2 = (changeData: userFileManager.ChangeData) => { 1653 console.info('onCallback2 success, changData: ' + JSON.stringify(changeData)); 1654 //file had changed, do something 1655 } 1656 // 注册onCallback1监听 1657 mgr.on(fileAsset.uri, false, onCallback1); 1658 // 注册onCallback2监听 1659 mgr.on(fileAsset.uri, false, onCallback2); 1660 1661 fileAsset.favorite(true, (err) => { 1662 if (err == undefined) { 1663 console.info('favorite successfully'); 1664 } else { 1665 console.error('favorite failed with error:' + err); 1666 } 1667 }); 1668} 1669``` 1670 1671### off<sup>10+</sup> 1672 1673 off(uri: string, callback?: Callback<ChangeData>): void 1674 1675取消对指定uri的监听,一个uri可以注册多个监听,存在多个callback监听时,可以取消指定注册的callback的监听;不指定callback时解除该uri的所有监听。 1676 1677**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1678 1679**参数:** 1680 1681| 参数名 | 类型 | 必填 | 说明 | 1682| -------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 1683| uri | string | 是 | FileAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri10)的值。 | 1684| callback | Callback<[ChangeData](#changedata10)> | 否 | 取消[on<sup>10+</sup>](#on10)注册时的callback的监听,不填时,取消该uri的所有监听。注:off指定注册的callback后不会进入此回调。 | 1685 1686**错误码:** 1687 1688接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 1689 1690| 错误码ID | 错误信息 | 1691| -------- | ---------------------------------------- | 1692| 13900020 | if parameter is invalid. | 1693 1694**示例:** 1695 1696```ts 1697import { dataSharePredicates } from '@kit.ArkData'; 1698 1699async function example() { 1700 console.info('offDemo'); 1701 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1702 let fetchOptions: userFileManager.FetchOptions = { 1703 fetchColumns: [], 1704 predicates: predicates 1705 }; 1706 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 1707 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1708 if (fileAsset != undefined) { 1709 console.info('fileAsset.displayName : ' + fileAsset.displayName); 1710 } 1711 let onCallback1 = (changeData: userFileManager.ChangeData) => { 1712 console.info('onCallback1 on'); 1713 } 1714 let onCallback2 = (changeData: userFileManager.ChangeData) => { 1715 console.info('onCallback2 on'); 1716 } 1717 // 注册onCallback1监听 1718 mgr.on(fileAsset.uri, false, onCallback1); 1719 // 注册onCallback2监听 1720 mgr.on(fileAsset.uri, false, onCallback2); 1721 // 关闭onCallback1监听,onCallback2 继续监听 1722 mgr.off(fileAsset.uri, onCallback1); 1723 fileAsset.favorite(true, (err) => { 1724 if (err == undefined) { 1725 console.info('favorite successfully'); 1726 } else { 1727 console.error('favorite failed with error:' + err); 1728 } 1729 }); 1730} 1731``` 1732 1733### on 1734 1735on(type: ChangeEvent, callback: Callback<void>): void 1736 1737打开文件管理库变更通知,使用callback方式返回异步结果。 1738 1739此接口即将废弃,请使用[on<sup>10+</sup>](#on10)的新接口。 1740 1741**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1742 1743**参数:** 1744 1745| 参数名 | 类型 | 必填 | 说明 | 1746| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1747| type | [ChangeEvent](#changeevent) | 是 | 媒体类型 <br/>'deviceChange': 注册设备变更。 <br/>'albumChange': 相册变更。<br/>'imageChange': 图片文件变更。<br/>'audioChange': 音频文件变更。<br/>'videoChange': 视频文件变更。<br/>'remoteFileChange': 注册设备上文件变更。 | 1748| callback | Callback<void> | 是 | callback返回void。 | 1749 1750**示例:** 1751 1752```ts 1753async function example() { 1754 console.info('onDemo'); 1755 let count = 0; 1756 mgr.on('imageChange', () => { 1757 count++; 1758 // image file had changed, do something 1759 }); 1760 try { 1761 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1762 let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 1763 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 1764 console.info('createPhotoAsset successfully'); 1765 } catch (err) { 1766 console.error('createPhotoAsset failed, message = ' + err); 1767 } 1768 //sleep 1s 1769 if (count > 0) { 1770 console.info('onDemo success'); 1771 } else { 1772 console.error('onDemo fail'); 1773 } 1774 mgr.off('imageChange', () => { 1775 // stop listening success 1776 }); 1777} 1778``` 1779 1780### off 1781 1782off(type: ChangeEvent, callback?: Callback<void>): void 1783 1784关闭文件管理库变更通知,使用callback方式返回异步结果。 1785 1786此接口即将废弃,请使用[off<sup>10+</sup>](#off10)的新接口。 1787 1788**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1789 1790**参数:** 1791 1792| 参数名 | 类型 | 必填 | 说明 | 1793| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1794| type | [ChangeEvent](#changeevent) | 是 | 媒体类型 <br/>'deviceChange': 注册设备变更。 <br/>'albumChange': 相册变更。<br/>'imageChange': 图片文件变更。<br/>'audioChange': 音频文件变更。<br/>'videoChange': 视频文件变更。<br/>'remoteFileChange': 注册设备上文件变更。 | 1795| callback | Callback<void> | 否 | callback返回void。 | 1796 1797**示例:** 1798 1799```ts 1800async function example() { 1801 console.info('offDemo'); 1802 let count = 0; 1803 mgr.on('imageChange', () => { 1804 count++; 1805 // image file had changed, do something 1806 }); 1807 1808 mgr.off('imageChange', () => { 1809 // stop listening success 1810 }); 1811 1812 try { 1813 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1814 let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 1815 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 1816 console.info('createPhotoAsset successfully'); 1817 } catch (err) { 1818 console.error('createPhotoAsset failed, message = ' + err); 1819 } 1820 //sleep 1s 1821 if (count == 0) { 1822 console.info('offDemo success'); 1823 } else { 1824 console.error('offDemo fail'); 1825 } 1826} 1827``` 1828 1829## FileAsset 1830 1831提供封装文件属性的方法。 1832 1833### 属性 1834 1835**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1836 1837| 名称 | 类型 | 只读 | 可写 | 说明 | 1838| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ | 1839| uri | string | 是 | 否 | 媒体文件资源uri(如:file://media/Photo/1/IMG_datetime_0001/displayName.jpg),详情参见用户文件uri介绍中的[媒体文件uri](../../file-management/user-file-uri-intro.md#媒体文件uri)。 | 1840| fileType | [FileType](#filetype) | 是 | 否 | 媒体文件类型。 | 1841| displayName | string | 是 | 是 | 显示文件名,包含后缀名。 | 1842 1843### get 1844 1845get(member: string): MemberType 1846 1847获取FileAsset成员参数。 1848 1849**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1850 1851**参数:** 1852 1853| 参数名 | 类型 | 必填 | 说明 | 1854| -------- | ------------------------- | ---- | ----- | 1855| member | string | 是 | 成员参数名称例如:ImageVideoKey.DISPLAY_NAME。在get时,除了uri、photoType和displayName三个属性之外,其他的属性都需要在fetchColumns中填入需要get的PhotoKeys。例如:get title属性fetchColumns: ['title']。 | 1856 1857**示例:** 1858 1859```ts 1860import { dataSharePredicates } from '@kit.ArkData'; 1861 1862async function example() { 1863 console.info('fileAssetGetDemo'); 1864 try { 1865 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1866 let fetchOption: userFileManager.FetchOptions = { 1867 fetchColumns: ['title'], 1868 predicates: predicates 1869 }; 1870 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 1871 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1872 let title: userFileManager.ImageVideoKey = userFileManager.ImageVideoKey.TITLE; 1873 let fileAssetTitle: userFileManager.MemberType = fileAsset.get(title.toString()); 1874 console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle); 1875 } catch (err) { 1876 console.error('release failed. message = ', err); 1877 } 1878} 1879``` 1880 1881### set 1882 1883set(member: string, value: string): void 1884 1885设置FileAsset成员参数。 1886 1887**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1888 1889**参数:** 1890 1891| 参数名 | 类型 | 必填 | 说明 | 1892| -------- | ------------------------- | ---- | ----- | 1893| member | string | 是 | 成员参数名称例如:ImageVideoKey.DISPLAY_NAME。 | 1894| value | string | 是 | 设置成员参数名称,只能修改DISPLAY_NAME和TITLE的值。 | 1895 1896**示例:** 1897 1898```ts 1899import { dataSharePredicates } from '@kit.ArkData'; 1900 1901async function example() { 1902 console.info('fileAssetSetDemo'); 1903 try { 1904 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1905 let fetchOption: userFileManager.FetchOptions = { 1906 fetchColumns: [], 1907 predicates: predicates 1908 }; 1909 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 1910 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1911 let displayName: string = userFileManager.ImageVideoKey.DISPLAY_NAME.toString(); 1912 fileAsset.set(displayName, 'newDisplayName1'); 1913 } catch (err) { 1914 console.error('release failed. message = ', err); 1915 } 1916} 1917``` 1918 1919### commitModify 1920 1921commitModify(callback: AsyncCallback<void>): void 1922 1923修改文件的元数据,使用callback方式返回异步结果。 1924 1925**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1926 1927**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1928 1929**参数:** 1930 1931| 参数名 | 类型 | 必填 | 说明 | 1932| -------- | ------------------------- | ---- | ----- | 1933| callback | AsyncCallback<void> | 是 | callback返回void。 | 1934 1935**示例:** 1936 1937```ts 1938import { dataSharePredicates } from '@kit.ArkData'; 1939 1940async function example() { 1941 console.info('commitModifyDemo'); 1942 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1943 let fetchOption: userFileManager.FetchOptions = { 1944 fetchColumns: [], 1945 predicates: predicates 1946 }; 1947 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 1948 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1949 let displayName: string = userFileManager.ImageVideoKey.DISPLAY_NAME.toString(); 1950 let fileAssetDisplayName: userFileManager.MemberType = fileAsset.get(displayName); 1951 console.info('fileAsset get fileAssetDisplayName = ', fileAssetDisplayName); 1952 let newFileAssetDisplayName = 'new' + fileAssetDisplayName; 1953 console.info('fileAsset newFileAssetDisplayName = ', newFileAssetDisplayName); 1954 fileAsset.set(displayName, newFileAssetDisplayName); 1955 fileAsset.commitModify((err) => { 1956 if (err == undefined) { 1957 let commitModifyDisplayName = fileAsset.get(displayName); 1958 console.info('fileAsset commitModify successfully, commitModifyDisplayName = ', commitModifyDisplayName); 1959 } else { 1960 console.error('commitModify failed, message =', err); 1961 } 1962 }); 1963} 1964``` 1965 1966### commitModify 1967 1968commitModify(): Promise<void> 1969 1970修改文件的元数据,使用promise方式返回异步结果。 1971 1972**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1973 1974**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1975 1976**返回值:** 1977 1978| 类型 | 说明 | 1979| ------------------- | ---------- | 1980| Promise<void> | Promise对象,返回void。 | 1981 1982**示例:** 1983 1984```ts 1985import { dataSharePredicates } from '@kit.ArkData'; 1986 1987async function example() { 1988 console.info('commitModifyDemo'); 1989 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1990 let fetchOption: userFileManager.FetchOptions = { 1991 fetchColumns: [], 1992 predicates: predicates 1993 }; 1994 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 1995 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1996 let displayName = userFileManager.ImageVideoKey.DISPLAY_NAME.toString(); 1997 let fileAssetDisplayName: userFileManager.MemberType = fileAsset.get(displayName); 1998 console.info('fileAsset get fileAssetDisplayName = ', fileAssetDisplayName); 1999 let newFileAssetDisplayName = 'new' + fileAssetDisplayName; 2000 console.info('fileAsset newFileAssetDisplayName = ', newFileAssetDisplayName); 2001 fileAsset.set(displayName, newFileAssetDisplayName); 2002 try { 2003 await fileAsset.commitModify(); 2004 let commitModifyDisplayName = fileAsset.get(displayName); 2005 console.info('fileAsset commitModify successfully, commitModifyDisplayName = ', commitModifyDisplayName); 2006 } catch (err) { 2007 console.error('commitModify failed. message = ', err); 2008 } 2009} 2010``` 2011 2012### open 2013 2014open(mode: string, callback: AsyncCallback<number>): void 2015 2016打开当前文件,使用callback方式返回异步结果。 2017 2018**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。 2019 2020**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 2021 2022**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2023 2024**参数:** 2025 2026| 参数名 | 类型 | 必填 | 说明 | 2027| -------- | --------------------------- | ---- | ----------------------------------- | 2028| mode | string | 是 | 打开文件方式。如:'r'(只读), 'w'(只写), 'rw'(读写)。 | 2029| callback | AsyncCallback<number> | 是 | callback返回文件描述符。 | 2030 2031**示例:** 2032 2033```ts 2034async function example() { 2035 console.info('openDemo'); 2036 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 2037 const fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 2038 fileAsset.open('rw', (err, fd) => { 2039 if (fd != undefined) { 2040 console.info('File fd' + fd); 2041 fileAsset.close(fd); 2042 } else { 2043 console.error('File err' + err); 2044 } 2045 }); 2046} 2047``` 2048 2049### open 2050 2051open(mode: string): Promise<number> 2052 2053打开当前文件,使用promise方式返回异步结果。 2054 2055**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。 2056 2057**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 2058 2059**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2060 2061**参数:** 2062 2063| 参数名 | 类型 | 必填 | 说明 | 2064| ---- | ------ | ---- | ----------------------------------- | 2065| mode | string | 是 | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)。 | 2066 2067**返回值:** 2068 2069| 类型 | 说明 | 2070| --------------------- | ------------- | 2071| Promise<number> | Promise对象,返回文件描述符。 | 2072 2073**示例:** 2074 2075```ts 2076async function example() { 2077 console.info('openDemo'); 2078 try { 2079 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 2080 const fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 2081 let fd: number = await fileAsset.open('rw'); 2082 if (fd != undefined) { 2083 console.info('File fd' + fd); 2084 fileAsset.close(fd); 2085 } else { 2086 console.error(' open File fail'); 2087 } 2088 } catch (err) { 2089 console.error('open Demo err' + err); 2090 } 2091} 2092``` 2093 2094### close 2095 2096close(fd: number, callback: AsyncCallback<void>): void 2097 2098关闭当前文件,使用callback方式返回异步结果。 2099 2100**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2101 2102**参数:** 2103 2104| 参数名 | 类型 | 必填 | 说明 | 2105| -------- | ------------------------- | ---- | ----- | 2106| fd | number | 是 | 文件描述符。 | 2107| callback | AsyncCallback<void> | 是 | callback返回void。 | 2108 2109**示例:** 2110 2111```ts 2112import { dataSharePredicates } from '@kit.ArkData'; 2113 2114async function example() { 2115 console.info('closeDemo'); 2116 try { 2117 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2118 let fetchOption: userFileManager.FetchOptions = { 2119 fetchColumns: [], 2120 predicates: predicates 2121 }; 2122 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2123 const fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2124 let fd: number = await fileAsset.open('rw'); 2125 console.info('file fd', fd); 2126 fileAsset.close(fd, (err) => { 2127 if (err == undefined) { 2128 console.info('asset close succeed.'); 2129 } else { 2130 console.error('close failed, message = ' + err); 2131 } 2132 }); 2133 } catch (err) { 2134 console.error('close failed, message = ' + err); 2135 } 2136} 2137``` 2138 2139### close 2140 2141close(fd: number): Promise<void> 2142 2143关闭当前文件,使用promise方式返回异步结果。 2144 2145**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2146 2147**参数:** 2148 2149| 参数名 | 类型 | 必填 | 说明 | 2150| ---- | ------ | ---- | ----- | 2151| fd | number | 是 | 文件描述符。 | 2152 2153**返回值:** 2154 2155| 类型 | 说明 | 2156| ------------------- | ---------- | 2157| Promise<void> | Promise对象,返回void。 | 2158 2159**示例:** 2160 2161```ts 2162import { dataSharePredicates } from '@kit.ArkData'; 2163 2164async function example() { 2165 console.info('closeDemo'); 2166 try { 2167 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2168 let fetchOption: userFileManager.FetchOptions = { 2169 fetchColumns: [], 2170 predicates: predicates 2171 }; 2172 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2173 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2174 let fd: number = await asset.open('rw'); 2175 console.info('file fd', fd); 2176 await asset.close(fd); 2177 console.info('asset close succeed.'); 2178 } catch (err) { 2179 console.error('close failed, message = ' + err); 2180 } 2181} 2182``` 2183 2184### getThumbnail 2185 2186getThumbnail(callback: AsyncCallback<image.PixelMap>): void 2187 2188获取文件的缩略图,使用callback方式返回异步结果。 2189 2190**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 2191 2192**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2193 2194**参数:** 2195 2196| 参数名 | 类型 | 必填 | 说明 | 2197| -------- | ----------------------------------- | ---- | ---------------- | 2198| callback | AsyncCallback<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | 是 | callback返回缩略图的PixelMap。 | 2199 2200**示例:** 2201 2202```ts 2203import { dataSharePredicates } from '@kit.ArkData'; 2204 2205async function example() { 2206 console.info('getThumbnailDemo'); 2207 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2208 let fetchOption: userFileManager.FetchOptions = { 2209 fetchColumns: [], 2210 predicates: predicates 2211 }; 2212 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2213 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2214 console.info('asset displayName = ', asset.displayName); 2215 asset.getThumbnail((err, pixelMap) => { 2216 if (err == undefined) { 2217 console.info('getThumbnail successful ' + pixelMap); 2218 } else { 2219 console.error('getThumbnail fail', err); 2220 } 2221 }); 2222} 2223``` 2224 2225### getThumbnail 2226 2227getThumbnail(size: image.Size, callback: AsyncCallback<image.PixelMap>): void 2228 2229获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。 2230 2231**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 2232 2233**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2234 2235**参数:** 2236 2237| 参数名 | 类型 | 必填 | 说明 | 2238| -------- | ----------------------------------- | ---- | ---------------- | 2239| size | [image.Size](../apis-image-kit/js-apis-image.md#size) | 是 | 缩略图尺寸。 | 2240| callback | AsyncCallback<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | 是 | callback返回缩略图的PixelMap。 | 2241 2242**示例:** 2243 2244```ts 2245import { dataSharePredicates } from '@kit.ArkData'; 2246import { image } from '@kit.ImageKit'; 2247 2248async function example() { 2249 console.info('getThumbnailDemo'); 2250 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2251 let fetchOption: userFileManager.FetchOptions = { 2252 fetchColumns: [], 2253 predicates: predicates 2254 }; 2255 let size: image.Size = { width: 720, height: 720 }; 2256 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2257 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2258 console.info('asset displayName = ', asset.displayName); 2259 asset.getThumbnail(size, (err, pixelMap) => { 2260 if (err == undefined) { 2261 console.info('getThumbnail successful ' + pixelMap); 2262 } else { 2263 console.error('getThumbnail fail', err); 2264 } 2265 }); 2266} 2267``` 2268 2269### getThumbnail 2270 2271getThumbnail(size?: image.Size): Promise<image.PixelMap> 2272 2273获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。 2274 2275**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 2276 2277**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2278 2279**参数:** 2280 2281| 参数名 | 类型 | 必填 | 说明 | 2282| ---- | -------------- | ---- | ----- | 2283| size | [image.Size](../apis-image-kit/js-apis-image.md#size) | 否 | 缩略图尺寸。 | 2284 2285**返回值:** 2286 2287| 类型 | 说明 | 2288| ----------------------------- | --------------------- | 2289| Promise<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | Promise对象,返回缩略图的PixelMap。 | 2290 2291**示例:** 2292 2293```ts 2294import { dataSharePredicates } from '@kit.ArkData'; 2295import { image } from '@kit.ImageKit'; 2296import { BusinessError } from '@kit.BasicServicesKit'; 2297 2298async function example() { 2299 console.info('getThumbnailDemo'); 2300 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2301 let fetchOption: userFileManager.FetchOptions = { 2302 fetchColumns: [], 2303 predicates: predicates 2304 }; 2305 let size: image.Size = { width: 720, height: 720 }; 2306 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2307 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2308 console.info('asset displayName = ', asset.displayName); 2309 asset.getThumbnail(size).then((pixelMap) => { 2310 console.info('getThumbnail successful ' + pixelMap); 2311 }).catch((err: BusinessError) => { 2312 console.error('getThumbnail fail' + err); 2313 }); 2314} 2315``` 2316 2317### favorite 2318 2319favorite(isFavorite: boolean, callback: AsyncCallback<void>): void 2320 2321将文件设置为收藏文件,使用callback方式返回异步结果。 2322 2323**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 2324 2325**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2326 2327**参数:** 2328 2329| 参数名 | 类型 | 必填 | 说明 | 2330| ---------- | ------------------------- | ---- | ---------------------------------- | 2331| isFavorite | boolean | 是 | 是否设置为收藏文件。true:设置为收藏文件;false:取消收藏。 | 2332| callback | AsyncCallback<void> | 是 | callback返回void。 | 2333 2334**示例:** 2335 2336```ts 2337import { dataSharePredicates } from '@kit.ArkData'; 2338 2339async function example() { 2340 console.info('favoriteDemo'); 2341 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2342 let fetchOption: userFileManager.FetchOptions = { 2343 fetchColumns: [], 2344 predicates: predicates 2345 }; 2346 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2347 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2348 asset.favorite(true, (err) => { 2349 if (err == undefined) { 2350 console.info('favorite successfully'); 2351 } else { 2352 console.error('favorite failed with error:' + err); 2353 } 2354 }); 2355} 2356``` 2357 2358### favorite 2359 2360favorite(isFavorite: boolean): Promise<void> 2361 2362将文件设置为收藏文件,使用promise方式返回异步结果。 2363 2364**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 2365 2366**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2367 2368**参数:** 2369 2370| 参数名 | 类型 | 必填 | 说明 | 2371| ---------- | ------- | ---- | ---------------------------------- | 2372| isFavorite | boolean | 是 | 是否设置为收藏文件。true:设置为收藏文件;false:取消收藏。 | 2373 2374**返回值:** 2375 2376| 类型 | 说明 | 2377| ------------------- | ---------- | 2378| Promise<void> | Promise对象,返回void。 | 2379 2380**示例:** 2381 2382```ts 2383import { dataSharePredicates } from '@kit.ArkData'; 2384import { BusinessError } from '@kit.BasicServicesKit'; 2385 2386async function example() { 2387 console.info('favoriteDemo'); 2388 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2389 let fetchOption: userFileManager.FetchOptions = { 2390 fetchColumns: [], 2391 predicates: predicates 2392 }; 2393 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2394 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2395 asset.favorite(true).then(() => { 2396 console.info('favorite successfully'); 2397 }).catch((err: BusinessError) => { 2398 console.error('favorite failed with error:' + err); 2399 }); 2400} 2401``` 2402 2403### setHidden<sup>10+</sup> 2404 2405setHidden(hiddenState: boolean, callback: AsyncCallback<void>): void 2406 2407将文件设置为隐私文件,使用callback方式返回异步结果。 2408 2409隐私文件存在隐私相册中,对三方应用不开放,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。 2410 2411**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2412 2413**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2414 2415**参数:** 2416 2417| 参数名 | 类型 | 必填 | 说明 | 2418| ---------- | ------------------------- | ---- | ---------------------------------- | 2419| hiddenState | boolean | 是 | 是否设置为隐藏文件。true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 2420| callback | AsyncCallback<void> | 是 | callback返回void。 | 2421 2422**错误码:** 2423 2424接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)和[通用错误码](../errorcode-universal.md)。 2425 2426| 错误码ID | 错误信息 | 2427| -------- | ---------------------------------------- | 2428| 202 | Called by non-system application. | 2429| 13900020 | if parameter is invalid. | 2430 2431**示例:** 2432 2433```ts 2434import { dataSharePredicates } from '@kit.ArkData'; 2435 2436async function example() { 2437 console.info('setHiddenDemo'); 2438 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2439 let fetchOption: userFileManager.FetchOptions = { 2440 fetchColumns: [], 2441 predicates: predicates 2442 }; 2443 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2444 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2445 asset.setHidden(true, (err) => { 2446 if (err == undefined) { 2447 console.info('setHidden successfully'); 2448 } else { 2449 console.error('setHidden failed with error:' + err); 2450 } 2451 }); 2452} 2453``` 2454 2455### setHidden<sup>10+</sup> 2456 2457setHidden(hiddenState: boolean): Promise<void> 2458 2459将文件设置为隐私文件,使用promise方式返回异步结果。 2460 2461隐私文件存在隐私相册中,对三方应用不开放,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。 2462 2463**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2464 2465**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2466 2467**参数:** 2468 2469| 参数名 | 类型 | 必填 | 说明 | 2470| ---------- | ------- | ---- | ---------------------------------- | 2471| hiddenState | boolean | 是 | 是否设置为隐藏文件。true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 2472 2473**返回值:** 2474 2475| 类型 | 说明 | 2476| ------------------- | ---------- | 2477| Promise<void> | Promise对象,返回void。 | 2478 2479**错误码:** 2480 2481接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)和[通用错误码](../errorcode-universal.md)。 2482 2483| 错误码ID | 错误信息 | 2484| -------- | ---------------------------------------- | 2485| 202 | Called by non-system application. | 2486| 13900020 | if parameter is invalid. | 2487 2488**示例:** 2489 2490```ts 2491import { dataSharePredicates } from '@kit.ArkData'; 2492import { BusinessError } from '@kit.BasicServicesKit'; 2493 2494async function example() { 2495 // 示例代码为将文件从隐藏相册中恢复,需要先在隐藏相册预置资源 2496 console.info('setHiddenDemo'); 2497 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2498 let fetchOption: userFileManager.FetchOptions = { 2499 fetchColumns: [], 2500 predicates: predicates 2501 }; 2502 let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.HIDDEN); 2503 const album: userFileManager.Album = await albumList.getFirstObject(); 2504 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 2505 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2506 asset.setHidden(false).then(() => { 2507 console.info('setHidden successfully'); 2508 }).catch((err: BusinessError) => { 2509 console.error('setHidden failed with error:' + err); 2510 }); 2511} 2512``` 2513 2514### getExif<sup>10+</sup> 2515 2516getExif(): Promise<string> 2517 2518返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。 2519 2520**注意**:此接口返回的是exif标签组成的json格式的字符串,完整exif信息由all_exif与[ImageVideoKey.USER_COMMENT](#imagevideokey)组成,fetchColumns需要传入这两个字段。 2521 2522**系统接口**:此接口为系统接口。 2523 2524**需要权限**:ohos.permission.READ_IMAGEVIDEO 2525 2526**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2527 2528**返回值:** 2529 2530| 类型 | 说明 | 2531| --------------------------------------- | ----------------- | 2532| Promise<string> | 返回exif标签组成的json格式的字符串。 | 2533 2534**支持Exif标签列表**: 2535 2536Exif标签的详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。 2537 2538| 标签key值 | 标签说明 | 2539| --------------------------------------- | ----------------- | 2540| BitsPerSample | 每个像素比特数。 | 2541| Orientation | 图像方向。 | 2542| ImageLength | 图像长度。 | 2543| ImageWidth | 图像宽度。 | 2544| GPSLatitude | GPS纬度。 | 2545| GPSLongitude | GPS经度。 | 2546| GPSLatitudeRef | 经度引用,例如W或E。 | 2547| GPSLongitudeRef | 纬度引用,例如N或S。 | 2548| DateTimeOriginal | 拍摄时间。 | 2549| ExposureTime | 曝光时间。 | 2550| SceneType | 场景类型。 | 2551| ISOSpeedRatings | ISO感光度分值。 | 2552| FNumber | 光圈F值。 | 2553| DateTime | 修改时间。 | 2554| GPSTimeStamp | GPS时间戳。 | 2555| GPSDateStamp | GPS日期戳。 | 2556| ImageDescription | 图像描述。 | 2557| Make | 制造商。 | 2558| MakeNote | 制造商。 | 2559| Model | 型号。 | 2560| PhotoMode | 拍摄模式。 | 2561| SensitivityType | 感光类型。 | 2562| StandardOutputSensitivity | 标准输出感光度。 | 2563| RecommendedExposureIndex | 推荐曝光指数。 | 2564| ApertureValue | 光圈。 | 2565| MeteringMode | 测光模式。 | 2566| LightSource | 光源。 | 2567| Flash | 闪光灯。 | 2568| FocalLength | 镜头焦距。 | 2569| UserComment | 用户注释。 | 2570| PixelXDimension | 有效图像宽度。 | 2571| PixelYDimension | 有效图像高度。 | 2572| WhiteBalance | 白平衡。 | 2573| FocalLengthIn35mmFilm | 35mm等效焦距。 | 2574| ExposureBiasValue | 曝光补偿。 | 2575 2576**示例:** 2577 2578```ts 2579import { dataSharePredicates } from '@kit.ArkData'; 2580 2581async function example() { 2582 try { 2583 console.info('getExifDemo'); 2584 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2585 predicates.isNotNull('all_exif') 2586 let fetchOptions: userFileManager.FetchOptions = { 2587 fetchColumns: ['all_exif', userFileManager.ImageVideoKey.USER_COMMENT.toString()], 2588 predicates: predicates 2589 }; 2590 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 2591 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2592 console.info('getExifDemo fileAsset displayName: ' + JSON.stringify(fileAsset.displayName)); 2593 let exifMessage: string = await fileAsset.getExif(); 2594 let userCommentKey: string = 'UserComment'; 2595 let userComment: string = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]); 2596 console.info('getExifDemo userComment: ' + JSON.stringify(userComment)); 2597 fetchResult.close(); 2598 } catch (err) { 2599 console.error('getExifDemoCallback failed with error: ' + err); 2600 } 2601} 2602``` 2603 2604### getExif<sup>10+</sup> 2605 2606getExif(callback: AsyncCallback<string>): void 2607 2608返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。 2609 2610**注意**:此接口返回的是exif标签组成的json格式的字符串,完整exif信息由all_exif与[ImageVideoKey.USER_COMMENT](#imagevideokey)组成,fetchColumns需要传入这两个字段。 2611 2612**系统接口**:此接口为系统接口。 2613 2614**需要权限**:ohos.permission.READ_IMAGEVIDEO 2615 2616**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2617 2618**参数:** 2619 2620| 参数名 | 类型 | 必填 | 说明 | 2621| -------- | ------------------------- | ---- | ---------- | 2622| callback | AsyncCallback<string> | 是 | 返回exif标签组成的json格式的字符串。 | 2623 2624**支持Exif标签列表**: 2625 2626Exif标签的详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。 2627 2628| 标签key值 | 标签说明 | 2629| --------------------------------------- | ----------------- | 2630| BitsPerSample | 每个像素比特数。 | 2631| Orientation | 图像方向。 | 2632| ImageLength | 图像长度。 | 2633| ImageWidth | 图像宽度。 | 2634| GPSLatitude | GPS纬度。 | 2635| GPSLongitude | GPS经度。 | 2636| GPSLatitudeRef | 经度引用,例如W或E。 | 2637| GPSLongitudeRef | 纬度引用,例如N或S。 | 2638| DateTimeOriginal | 拍摄时间。 | 2639| ExposureTime | 曝光时间。 | 2640| SceneType | 场景类型。 | 2641| ISOSpeedRatings | ISO感光度分值。 | 2642| FNumber | 光圈F值。 | 2643| DateTime | 修改时间。 | 2644| GPSTimeStamp | GPS时间戳。 | 2645| GPSDateStamp | GPS日期戳。 | 2646| ImageDescription | 图像描述。 | 2647| Make | 制造商。 | 2648| MakeNote | 制造商。 | 2649| Model | 型号。 | 2650| PhotoMode | 拍摄模式。 | 2651| SensitivityType | 感光类型。 | 2652| StandardOutputSensitivity | 标准输出感光度。 | 2653| RecommendedExposureIndex | 推荐曝光指数。 | 2654| ApertureValue | 光圈。 | 2655| MeteringMode | 测光模式。 | 2656| LightSource | 光源。 | 2657| Flash | 闪光灯。 | 2658| FocalLength | 镜头焦距。 | 2659| UserComment | 用户注释。 | 2660| PixelXDimension | 有效图像宽度。 | 2661| PixelYDimension | 有效图像高度。 | 2662| WhiteBalance | 白平衡。 | 2663| FocalLengthIn35mmFilm | 35mm等效焦距。 | 2664| ExposureBiasValue | 曝光补偿。 | 2665 2666**示例:** 2667 2668```ts 2669import { dataSharePredicates } from '@kit.ArkData'; 2670 2671async function example() { 2672 try { 2673 console.info('getExifDemo'); 2674 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2675 predicates.isNotNull('all_exif') 2676 let fetchOptions: userFileManager.FetchOptions = { 2677 fetchColumns: ['all_exif', userFileManager.ImageVideoKey.USER_COMMENT.toString()], 2678 predicates: predicates 2679 }; 2680 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 2681 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2682 console.info('getExifDemo fileAsset displayName: ' + JSON.stringify(fileAsset.displayName)); 2683 let userCommentKey: string = 'UserComment'; 2684 fileAsset.getExif((err, exifMessage) => { 2685 if (exifMessage != undefined) { 2686 let userComment: string = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]); 2687 console.info('getExifDemo userComment: ' + JSON.stringify(userComment)); 2688 } else { 2689 console.error('getExif failed, message = ', err); 2690 } 2691 }); 2692 fetchResult.close(); 2693 } catch (err) { 2694 console.error('getExifDemoCallback failed with error: ' + err); 2695 } 2696} 2697``` 2698 2699### setUserComment<sup>10+</sup> 2700 2701setUserComment(userComment: string): Promise<void> 2702 2703修改图片或者视频的备注信息,该方法使用Promise来返回结果。 2704 2705**注意**:此接口只可修改图片或者视频的备注信息。 2706 2707**系统接口**:此接口为系统接口。 2708 2709**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2710 2711**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2712 2713**参数:** 2714 2715| 参数名 | 类型 | 必填 | 说明 | 2716| -------- | ------------------------- | ---- | ---------- | 2717| userComment | string | 是 | 待修改的图片或视频的备注信息,备注信息最长为140字符。 | 2718 2719**返回值:** 2720 2721| 类型 | 说明 | 2722| --------------------------------------- | ----------------- | 2723|Promise<void> | Promise对象,返回void。 | 2724 2725**错误码:** 2726 2727接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 2728 2729| 错误码ID | 错误信息 | 2730| -------- | ---------------------------------------- | 2731| 202 | Called by non-system application. | 2732| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2733 2734**示例:** 2735 2736```ts 2737import { dataSharePredicates } from '@kit.ArkData'; 2738 2739async function example() { 2740 try { 2741 console.info('setUserCommentDemo') 2742 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2743 let fetchOptions: userFileManager.FetchOptions = { 2744 fetchColumns: [], 2745 predicates: predicates 2746 }; 2747 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 2748 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2749 let userComment: string = 'test_set_user_comment'; 2750 await fileAsset.setUserComment(userComment); 2751 } catch (err) { 2752 console.error('setUserCommentDemoCallback failed with error: ' + err); 2753 } 2754} 2755``` 2756 2757### setUserComment<sup>10+</sup> 2758 2759setUserComment(userComment: string, callback: AsyncCallback<void>): void 2760 2761修改图片或者视频的备注信息,该方法使用callback形式来返回结果。 2762 2763**注意**:此接口只可修改图片或者视频的备注信息。 2764 2765**系统接口**:此接口为系统接口。 2766 2767**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2768 2769**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2770 2771**参数:** 2772 2773| 参数名 | 类型 | 必填 | 说明 | 2774| -------- | ------------------------- | ---- | ---------- | 2775| userComment | string | 是 | 待修改的图片或视频的备注信息,备注信息最长为140字符。 | 2776| callback | AsyncCallback<void> | 是 | callback返回void。 | 2777 2778**错误码:** 2779 2780接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 2781 2782| 错误码ID | 错误信息 | 2783| -------- | ---------------------------------------- | 2784| 202 | Called by non-system application. | 2785| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2786 2787**示例:** 2788 2789```ts 2790import { dataSharePredicates } from '@kit.ArkData'; 2791 2792async function example() { 2793 try { 2794 console.info('setUserCommentDemo') 2795 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2796 let fetchOptions: userFileManager.FetchOptions = { 2797 fetchColumns: [], 2798 predicates: predicates 2799 }; 2800 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 2801 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2802 let userComment: string = 'test_set_user_comment'; 2803 fileAsset.setUserComment(userComment, (err) => { 2804 if (err === undefined) { 2805 console.info('setUserComment successfully'); 2806 } else { 2807 console.error('setUserComment failed with error: ' + err); 2808 } 2809 }); 2810 } catch (err) { 2811 console.error('setUserCommentDemoCallback failed with error: ' + err); 2812 } 2813} 2814``` 2815 2816## FetchResult 2817 2818文件检索结果集。 2819 2820### getCount 2821 2822getCount(): number 2823 2824获取文件检索结果中的文件总数。 2825 2826**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2827 2828**返回值:** 2829 2830| 类型 | 说明 | 2831| ------ | -------- | 2832| number | 检索到的文件总数。 | 2833 2834**示例:** 2835 2836```ts 2837import { dataSharePredicates } from '@kit.ArkData'; 2838 2839async function example() { 2840 console.info('getCountDemo'); 2841 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2842 let fetchOption: userFileManager.FetchOptions = { 2843 fetchColumns: [], 2844 predicates: predicates 2845 }; 2846 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2847 const fetchCount: number = fetchResult.getCount(); 2848 console.info('fetchCount = ', fetchCount); 2849} 2850``` 2851 2852### isAfterLast 2853 2854isAfterLast(): boolean 2855 2856检查结果集是否指向最后一行。 2857 2858**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2859 2860**返回值:** 2861 2862| 类型 | 说明 | 2863| ------- | ---------------------------------- | 2864| boolean | 当读到最后一条记录后,后续没有记录返回true;否则返回false。 | 2865 2866**示例:** 2867 2868```ts 2869import { dataSharePredicates } from '@kit.ArkData'; 2870 2871async function example() { 2872 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2873 let fetchOption: userFileManager.FetchOptions = { 2874 fetchColumns: [], 2875 predicates: predicates 2876 }; 2877 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2878 const fetchCount: number = fetchResult.getCount(); 2879 console.info('count:' + fetchCount); 2880 let fileAsset: userFileManager.FileAsset = await fetchResult.getLastObject(); 2881 if (fetchResult.isAfterLast()) { 2882 console.info('fileAsset isAfterLast displayName = ', fileAsset.displayName); 2883 } else { 2884 console.info('fileAsset not isAfterLast '); 2885 } 2886} 2887``` 2888 2889### close 2890 2891close(): void 2892 2893释放 FetchFileResult 实例并使其失效。无法调用其他方法。 2894 2895**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2896 2897**示例:** 2898 2899```ts 2900import { dataSharePredicates } from '@kit.ArkData'; 2901 2902async function example() { 2903 console.info('fetchResultCloseDemo'); 2904 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2905 let fetchOption: userFileManager.FetchOptions = { 2906 fetchColumns: [], 2907 predicates: predicates 2908 }; 2909 try { 2910 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2911 fetchResult.close(); 2912 console.info('close succeed.'); 2913 } catch (err) { 2914 console.error('close fail. message = ' + err); 2915 } 2916} 2917``` 2918 2919### getFirstObject 2920 2921getFirstObject(callback: AsyncCallback<T>): void 2922 2923获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。 2924 2925**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2926 2927**参数:** 2928 2929| 参数名 | 类型 | 必填 | 说明 | 2930| -------- | --------------------------------------------- | ---- | ------------------------------------------- | 2931| callback | AsyncCallback<T> | 是 | 异步获取结果集中的第一个完成后的回调。 | 2932 2933**示例:** 2934 2935```ts 2936import { dataSharePredicates } from '@kit.ArkData'; 2937 2938async function example() { 2939 console.info('getFirstObjectDemo'); 2940 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2941 let fetchOption: userFileManager.FetchOptions = { 2942 fetchColumns: [], 2943 predicates: predicates 2944 }; 2945 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2946 fetchResult.getFirstObject((err, fileAsset) => { 2947 if (fileAsset != undefined) { 2948 console.info('fileAsset displayName: ', fileAsset.displayName); 2949 } else { 2950 console.error('fileAsset failed with err:' + err); 2951 } 2952 }); 2953} 2954``` 2955 2956### getFirstObject 2957 2958getFirstObject(): Promise<T> 2959 2960获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。 2961 2962**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2963 2964**返回值:** 2965 2966| 类型 | 说明 | 2967| --------------------------------------- | -------------------------- | 2968| Promise<T> | Promise对象,返回结果集中第一个对象。 | 2969 2970**示例:** 2971 2972```ts 2973import { dataSharePredicates } from '@kit.ArkData'; 2974 2975async function example() { 2976 console.info('getFirstObjectDemo'); 2977 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2978 let fetchOption: userFileManager.FetchOptions = { 2979 fetchColumns: [], 2980 predicates: predicates 2981 }; 2982 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2983 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2984 console.info('fileAsset displayName: ', fileAsset.displayName); 2985} 2986``` 2987 2988### getNextObject 2989 2990getNextObject(callback: AsyncCallback<T>): void 2991 2992获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。 2993在调用此方法之前,必须使用[isAfterLast()](#isafterlast)来检查当前位置是否为最后一行。 2994 2995**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2996 2997**参数:** 2998 2999| 参数名 | 类型 | 必填 | 说明 | 3000| --------- | --------------------------------------------- | ---- | ----------------------------------------- | 3001| callback | AsyncCallback<T> | 是 | 异步返回结果集中下一个之后的回调。 | 3002 3003**示例:** 3004 3005```ts 3006import { dataSharePredicates } from '@kit.ArkData'; 3007 3008async function example() { 3009 console.info('getNextObjectDemo'); 3010 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3011 let fetchOption: userFileManager.FetchOptions = { 3012 fetchColumns: [], 3013 predicates: predicates 3014 }; 3015 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3016 await fetchResult.getFirstObject(); 3017 if (!fetchResult.isAfterLast()) { 3018 fetchResult.getNextObject((err, fileAsset) => { 3019 if (fileAsset != undefined) { 3020 console.info('fileAsset displayName: ', fileAsset.displayName); 3021 } else { 3022 console.error('fileAsset failed with err: ' + err); 3023 } 3024 }); 3025 } 3026} 3027``` 3028 3029### getNextObject 3030 3031getNextObject(): Promise<T> 3032 3033获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。 3034在调用此方法之前,必须使用[isAfterLast()](#isafterlast)来检查当前位置是否为最后一行。 3035 3036**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3037 3038**返回值:** 3039 3040| 类型 | 说明 | 3041| --------------------------------------- | ----------------- | 3042| Promise<T> | Promise对象,返回结果集中下一个对象。 | 3043 3044**示例:** 3045 3046```ts 3047import { dataSharePredicates } from '@kit.ArkData'; 3048 3049async function example() { 3050 console.info('getNextObjectDemo'); 3051 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3052 let fetchOption: userFileManager.FetchOptions = { 3053 fetchColumns: [], 3054 predicates: predicates 3055 }; 3056 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3057 await fetchResult.getFirstObject(); 3058 if (!fetchResult.isAfterLast()) { 3059 let fileAsset: userFileManager.FileAsset = await fetchResult.getNextObject(); 3060 console.info('fileAsset displayName: ', fileAsset.displayName); 3061 } 3062} 3063``` 3064 3065### getLastObject 3066 3067getLastObject(callback: AsyncCallback<T>): void 3068 3069获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。 3070 3071**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3072 3073**参数:** 3074 3075| 参数名 | 类型 | 必填 | 说明 | 3076| -------- | --------------------------------------------- | ---- | --------------------------- | 3077| callback | AsyncCallback<T> | 是 | 异步返回结果集中最后一个的回调。 | 3078 3079**示例:** 3080 3081```ts 3082import { dataSharePredicates } from '@kit.ArkData'; 3083 3084async function example() { 3085 console.info('getLastObjectDemo'); 3086 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3087 let fetchOption: userFileManager.FetchOptions = { 3088 fetchColumns: [], 3089 predicates: predicates 3090 }; 3091 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3092 fetchResult.getLastObject((err, fileAsset) => { 3093 if (fileAsset != undefined) { 3094 console.info('fileAsset displayName: ', fileAsset.displayName); 3095 } else { 3096 console.error('fileAsset failed with err: ' + err); 3097 } 3098 }); 3099} 3100``` 3101 3102### getLastObject 3103 3104getLastObject(): Promise<T> 3105 3106获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。 3107 3108**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3109 3110**返回值:** 3111 3112| 类型 | 说明 | 3113| --------------------------------------- | ----------------- | 3114| Promise<T> | Promise对象,返回结果集中最后一个对象。 | 3115 3116**示例:** 3117 3118```ts 3119import { dataSharePredicates } from '@kit.ArkData'; 3120 3121async function example() { 3122 console.info('getLastObjectDemo'); 3123 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3124 let fetchOption: userFileManager.FetchOptions = { 3125 fetchColumns: [], 3126 predicates: predicates 3127 }; 3128 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3129 let fileAsset: userFileManager.FileAsset = await fetchResult.getLastObject(); 3130 console.info('fileAsset displayName: ', fileAsset.displayName); 3131} 3132``` 3133 3134### getPositionObject 3135 3136getPositionObject(index: number, callback: AsyncCallback<T>): void 3137 3138获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。 3139 3140**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3141 3142**参数:** 3143 3144| 参数名 | 类型 | 必填 | 说明 | 3145| -------- | ---------------------------------------- | ---- | ------------------ | 3146| index | number | 是 | 要获取的文件的索引,从0开始。 | 3147| callback | AsyncCallback<T> | 是 | 异步返回指定索引的文件资产的回调。 | 3148 3149**错误码:** 3150 3151接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3152 3153| 错误码ID | 错误信息 | 3154| -------- | ---------------------------------------- | 3155| 13900020 | if type index is not number. | 3156 3157**示例:** 3158 3159```ts 3160import { dataSharePredicates } from '@kit.ArkData'; 3161 3162async function example() { 3163 console.info('getPositionObjectDemo'); 3164 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3165 let fetchOption: userFileManager.FetchOptions = { 3166 fetchColumns: [], 3167 predicates: predicates 3168 }; 3169 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3170 fetchResult.getPositionObject(0, (err, fileAsset) => { 3171 if (fileAsset != undefined) { 3172 console.info('fileAsset displayName: ', fileAsset.displayName); 3173 } else { 3174 console.error('fileAsset failed with err: ' + err); 3175 } 3176 }); 3177} 3178``` 3179 3180### getPositionObject 3181 3182getPositionObject(index: number): Promise<T> 3183 3184获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。 3185 3186**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3187 3188**参数:** 3189 3190| 参数名 | 类型 | 必填 | 说明 | 3191| ----- | ------ | ---- | -------------- | 3192| index | number | 是 | 要获取的文件的索引,从0开始。 | 3193 3194**返回值:** 3195 3196| 类型 | 说明 | 3197| --------------------------------------- | ----------------- | 3198| Promise<T> | Promise对象,返回结果集中指定索引的一个对象。 | 3199 3200**错误码:** 3201 3202接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3203 3204| 错误码ID | 错误信息 | 3205| -------- | ---------------------------------------- | 3206| 13900020 | if type index is not number. | 3207 3208**示例:** 3209 3210```ts 3211import { dataSharePredicates } from '@kit.ArkData'; 3212 3213async function example() { 3214 console.info('getPositionObjectDemo'); 3215 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3216 let fetchOption: userFileManager.FetchOptions = { 3217 fetchColumns: [], 3218 predicates: predicates 3219 }; 3220 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3221 let fileAsset: userFileManager.FileAsset = await fetchResult.getPositionObject(0); 3222 console.info('fileAsset displayName: ', fileAsset.displayName); 3223} 3224``` 3225 3226### getAllObject<sup>10+</sup> 3227 3228getAllObject(callback: AsyncCallback<Array<T>>): void 3229 3230获取文件检索结果中的所有文件资产。此方法使用callback形式返回结果。 3231 3232**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3233 3234**参数:** 3235 3236| 参数名 | 类型 | 必填 | 说明 | 3237| -------- | --------------------------------------------- | ---- | ------------------------------------------- | 3238| callback | AsyncCallback<Array<T>> | 是 | 异步获取结果集中的所有文件资产完成后的回调。 | 3239 3240**示例:** 3241 3242```ts 3243import { dataSharePredicates } from '@kit.ArkData'; 3244 3245async function example() { 3246 console.info('getAllObjectDemo'); 3247 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3248 let fetchOption: userFileManager.FetchOptions = { 3249 fetchColumns: [], 3250 predicates: predicates 3251 }; 3252 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3253 fetchResult.getAllObject((err, fileAssetList) => { 3254 if (fileAssetList != undefined) { 3255 console.info('fileAssetList length: ', fileAssetList.length); 3256 } else { 3257 console.error('fileAssetList failed with err:' + err); 3258 } 3259 }); 3260} 3261``` 3262 3263### getAllObject<sup>10+</sup> 3264 3265getAllObject(): Promise<Array<T>> 3266 3267获取文件检索结果中的所有文件资产。此方法使用promise方式来异步返回。 3268 3269**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3270 3271**返回值:** 3272 3273| 类型 | 说明 | 3274| --------------------------------------- | -------------------------- | 3275| Promise<Array<T>> | Promise对象,返回结果集中所有文件资产数组。 | 3276 3277**示例:** 3278 3279```ts 3280import { dataSharePredicates } from '@kit.ArkData'; 3281 3282async function example() { 3283 console.info('getAllObjectDemo'); 3284 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3285 let fetchOption: userFileManager.FetchOptions = { 3286 fetchColumns: [], 3287 predicates: predicates 3288 }; 3289 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3290 let fileAssetList: Array<userFileManager.FileAsset> = await fetchResult.getAllObject(); 3291 console.info('fileAssetList length: ', fileAssetList.length); 3292} 3293``` 3294 3295## Album 3296 3297实体相册。 3298 3299### 属性 3300 3301**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3302 3303| 名称 | 类型 | 只读 | 可写 | 说明 | 3304| ------------ | ------ | ---- | ---- | ------- | 3305| albumType<sup>10+</sup> | [AlbumType]( #albumtype10) | 是 | 否 | 相册类型。 | 3306| albumSubType<sup>10+</sup> | [AlbumSubType]( #albumsubtype10) | 是 | 否 | 相册子类型。 | 3307| albumName | string | 是 | 用户相册可写,预置相册不可写 | 相册名称。 | 3308| albumUri | string | 是 | 否 | 相册Uri。 | 3309| count | number | 是 | 否 | 相册中文件数量。 | 3310| coverUri | string | 是 | 用户相册可写,预置相册不可写 | 封面文件Uri。 | 3311 3312### getPhotoAssets 3313 3314getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void 3315 3316获取相册中的文件。该方法使用callback形式来返回文件。 3317 3318**需要权限**:ohos.permission.READ_IMAGEVIDEO 3319 3320**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3321 3322**参数:** 3323 3324| 参数名 | 类型 | 必填 | 说明 | 3325| -------- | ------------------------- | ---- | ---------- | 3326| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 3327| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback返回图片和视频数据结果集。 | 3328 3329**错误码:** 3330 3331接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3332 3333| 错误码ID | 错误信息 | 3334| -------- | ---------------------------------------- | 3335| 13900020 | if type options is not FetchOptions. | 3336 3337**示例:** 3338 3339```ts 3340import { dataSharePredicates } from '@kit.ArkData'; 3341 3342async function example() { 3343 console.info('albumGetFileAssetsDemoCallback'); 3344 3345 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3346 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 3347 predicates: predicates 3348 }; 3349 let fetchOption: userFileManager.FetchOptions = { 3350 fetchColumns: [], 3351 predicates: predicates 3352 }; 3353 let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 3354 let album: userFileManager.Album = await albumList.getFirstObject(); 3355 album.getPhotoAssets(fetchOption, (err, albumFetchResult) => { 3356 if (albumFetchResult != undefined) { 3357 console.info('album getPhotoAssets successfully, getCount: ' + albumFetchResult.getCount()); 3358 } else { 3359 console.error('album getPhotoAssets failed with error: ' + err); 3360 } 3361 }); 3362} 3363``` 3364 3365### getPhotoAssets 3366 3367getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>> 3368 3369获取相册中的文件。该方法使用Promise来返回文件。 3370 3371**需要权限**:ohos.permission.READ_IMAGEVIDEO 3372 3373**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3374 3375**参数:** 3376 3377| 参数名 | 类型 | 必填 | 说明 | 3378| -------- | ------------------------- | ---- | ---------- | 3379| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 3380 3381**返回值:** 3382 3383| 类型 | 说明 | 3384| --------------------------------------- | ----------------- | 3385| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise对象,返回图片和视频数据结果集。 | 3386 3387**错误码:** 3388 3389接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3390 3391| 错误码ID | 错误信息 | 3392| -------- | ---------------------------------------- | 3393| 13900020 | if type options is not FetchOptions. | 3394 3395**示例:** 3396 3397```ts 3398import { dataSharePredicates } from '@kit.ArkData'; 3399import { BusinessError } from '@kit.BasicServicesKit'; 3400 3401async function example() { 3402 console.info('albumGetFileAssetsDemoPromise'); 3403 3404 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3405 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 3406 predicates: predicates 3407 }; 3408 let fetchOption: userFileManager.FetchOptions = { 3409 fetchColumns: [], 3410 predicates: predicates 3411 }; 3412 const albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 3413 const album: userFileManager.Album = await albumList.getFirstObject(); 3414 album.getPhotoAssets(fetchOption).then((albumFetchResult) => { 3415 console.info('album getFileAssets successfully, getCount: ' + albumFetchResult.getCount()); 3416 }).catch((err: BusinessError) => { 3417 console.error('album getFileAssets failed with error: ' + err); 3418 }); 3419} 3420``` 3421 3422### commitModify 3423 3424commitModify(callback: AsyncCallback<void>): void 3425 3426更新相册属性修改到数据库中。该方法使用callback形式来返回结果。 3427 3428**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3429 3430**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3431 3432**参数:** 3433 3434| 参数名 | 类型 | 必填 | 说明 | 3435| -------- | ------------------------- | ---- | ---------- | 3436| callback | AsyncCallback<void> | 是 | callback返回void。 | 3437 3438**示例:** 3439 3440```ts 3441import { dataSharePredicates } from '@kit.ArkData'; 3442 3443async function example() { 3444 console.info('albumCommitModifyDemo'); 3445 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3446 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 3447 predicates: predicates 3448 }; 3449 const albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 3450 const album: userFileManager.Album = await albumList.getFirstObject(); 3451 album.albumName = 'hello'; 3452 album.commitModify((err) => { 3453 if (err != undefined) { 3454 console.error('commitModify failed with error: ' + err); 3455 } else { 3456 console.info('commitModify successfully'); 3457 } 3458 }); 3459} 3460``` 3461 3462### commitModify 3463 3464commitModify(): Promise<void> 3465 3466更新相册属性修改到数据库中。该方法使用Promise来返回结果。 3467 3468**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3469 3470**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3471 3472**返回值:** 3473 3474| 类型 | 说明 | 3475| ------------------- | ------------ | 3476| Promise<void> | Promise对象,返回void。 | 3477 3478**示例:** 3479 3480```ts 3481import { dataSharePredicates } from '@kit.ArkData'; 3482import { BusinessError } from '@kit.BasicServicesKit'; 3483 3484async function example() { 3485 console.info('albumCommitModifyDemo'); 3486 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3487 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 3488 predicates: predicates 3489 }; 3490 try { 3491 let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 3492 let album: userFileManager.Album = await albumList.getFirstObject(); 3493 album.albumName = 'hello'; 3494 album.commitModify().then(() => { 3495 console.info('commitModify successfully'); 3496 }).catch((err: BusinessError) => { 3497 console.error('commitModify failed with error: ' + err); 3498 }); 3499 } catch (err) { 3500 console.error('getPhotoAlbums failed. message = ', err); 3501 } 3502} 3503``` 3504 3505### addPhotoAssets<sup>10+</sup> 3506 3507addPhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void 3508 3509往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。 3510 3511**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3512 3513**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3514 3515**参数:** 3516 3517| 参数名 | 类型 | 必填 | 说明 | 3518| -------- | ------------------------- | ---- | ---------- | 3519| assets | Array<[FileAsset](#fileasset)> | 是 | 待添加到相册中的图片或视频数组。 | 3520| callback | AsyncCallback<void> | 是 | callback返回void。 | 3521 3522**错误码:** 3523 3524接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3525 3526| 错误码ID | 错误信息 | 3527| -------- | ---------------------------------------- | 3528| 13900020 | if PhotoAssets is invalid. | 3529 3530**示例:** 3531 3532```ts 3533import { dataSharePredicates } from '@kit.ArkData'; 3534 3535async function example() { 3536 try { 3537 console.info('addPhotoAssetsDemoCallback'); 3538 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3539 let fetchOption: userFileManager.FetchOptions = { 3540 fetchColumns: [], 3541 predicates: predicates 3542 }; 3543 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC); 3544 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3545 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3546 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3547 album.addPhotoAssets([asset], (err) => { 3548 if (err === undefined) { 3549 console.info('album addPhotoAssets successfully'); 3550 } else { 3551 console.error('album addPhotoAssets failed with error: ' + err); 3552 } 3553 }); 3554 } catch (err) { 3555 console.error('addPhotoAssetsDemoCallback failed with error: ' + err); 3556 } 3557} 3558``` 3559 3560### addPhotoAssets<sup>10+</sup> 3561 3562addPhotoAssets(assets: Array<FileAsset>): Promise<void> 3563 3564往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。 3565 3566**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3567 3568**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3569 3570**参数:** 3571 3572| 参数名 | 类型 | 必填 | 说明 | 3573| -------- | ------------------------- | ---- | ---------- | 3574| assets | Array<[FileAsset](#fileasset)> | 是 | 待添加到相册中的图片或视频数组。 | 3575 3576**返回值:** 3577 3578| 类型 | 说明 | 3579| --------------------------------------- | ----------------- | 3580|Promise<void> | Promise对象,返回void。 | 3581 3582**错误码:** 3583 3584接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3585 3586| 错误码ID | 错误信息 | 3587| -------- | ---------------------------------------- | 3588| 13900020 | if PhotoAssets is invalid. | 3589 3590**示例:** 3591 3592```ts 3593import { dataSharePredicates } from '@kit.ArkData'; 3594import { BusinessError } from '@kit.BasicServicesKit'; 3595 3596async function example() { 3597 try { 3598 console.info('addPhotoAssetsDemoPromise'); 3599 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3600 let fetchOption: userFileManager.FetchOptions = { 3601 fetchColumns: [], 3602 predicates: predicates 3603 }; 3604 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC); 3605 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3606 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3607 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3608 album.addPhotoAssets([asset]).then(() => { 3609 console.info('album addPhotoAssets successfully'); 3610 }).catch((err: BusinessError) => { 3611 console.error('album addPhotoAssets failed with error: ' + err); 3612 }); 3613 } catch (err) { 3614 console.error('addPhotoAssetsDemoPromise failed with error: ' + err); 3615 } 3616} 3617``` 3618 3619### removePhotoAssets<sup>10+</sup> 3620 3621removePhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void 3622 3623从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。 3624 3625**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3626 3627**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3628 3629**参数:** 3630 3631| 参数名 | 类型 | 必填 | 说明 | 3632| -------- | ------------------------- | ---- | ---------- | 3633| assets | Array<[FileAsset](#fileasset)> | 是 | 相册中待移除的图片或视频数组。 | 3634| callback | AsyncCallback<void> | 是 | callback返回void。 | 3635 3636**错误码:** 3637 3638接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3639 3640| 错误码ID | 错误信息 | 3641| -------- | ---------------------------------------- | 3642| 13900020 | if PhotoAssets is invalid. | 3643 3644**示例:** 3645 3646```ts 3647import { dataSharePredicates } from '@kit.ArkData'; 3648 3649async function example() { 3650 try { 3651 console.info('removePhotoAssetsDemoCallback'); 3652 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3653 let fetchOption: userFileManager.FetchOptions = { 3654 fetchColumns: [], 3655 predicates: predicates 3656 }; 3657 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC); 3658 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3659 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3660 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3661 album.removePhotoAssets([asset], (err) => { 3662 if (err === undefined) { 3663 console.info('album removePhotoAssets successfully'); 3664 } else { 3665 console.error('album removePhotoAssets failed with error: ' + err); 3666 } 3667 }); 3668 } catch (err) { 3669 console.error('removePhotoAssetsDemoCallback failed with error: ' + err); 3670 } 3671} 3672``` 3673 3674### removePhotoAssets<sup>10+</sup> 3675 3676removePhotoAssets(assets: Array<FileAsset>): Promise<void> 3677 3678从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。 3679 3680**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3681 3682**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3683 3684**参数:** 3685 3686| 参数名 | 类型 | 必填 | 说明 | 3687| -------- | ------------------------- | ---- | ---------- | 3688| assets | Array<[FileAsset](#fileasset)> | 是 | 相册中待移除的图片或视频数组。 | 3689 3690**返回值:** 3691 3692| 类型 | 说明 | 3693| --------------------------------------- | ----------------- | 3694|Promise<void> | Promise对象,返回void。 | 3695 3696**错误码:** 3697 3698接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3699 3700| 错误码ID | 错误信息 | 3701| -------- | ---------------------------------------- | 3702| 13900020 | if PhotoAssets is invalid. | 3703 3704**示例:** 3705 3706```ts 3707import { dataSharePredicates } from '@kit.ArkData'; 3708import { BusinessError } from '@kit.BasicServicesKit'; 3709 3710async function example() { 3711 try { 3712 console.info('removePhotoAssetsDemoPromise'); 3713 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3714 let fetchOption: userFileManager.FetchOptions = { 3715 fetchColumns: [], 3716 predicates: predicates 3717 }; 3718 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC); 3719 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3720 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3721 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3722 album.removePhotoAssets([asset]).then(() => { 3723 console.info('album removePhotoAssets successfully'); 3724 }).catch((err: BusinessError) => { 3725 console.error('album removePhotoAssets failed with error: ' + err); 3726 }); 3727 } catch (err) { 3728 console.error('removePhotoAssetsDemoPromise failed with error: ' + err); 3729 } 3730} 3731``` 3732 3733### recoverPhotoAssets<sup>10+</sup> 3734 3735recoverPhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void 3736 3737从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。 3738 3739**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3740 3741**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3742 3743**参数:** 3744 3745| 参数名 | 类型 | 必填 | 说明 | 3746| -------- | ------------------------- | ---- | ---------- | 3747| assets | Array<[FileAsset](#fileasset)> | 是 | 回收站中待恢复图片或者视频数组。 | 3748| callback | AsyncCallback<void> | 是 | callback返回void。 | 3749 3750**错误码:** 3751 3752接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3753 3754| 错误码ID | 错误信息 | 3755| -------- | ---------------------------------------- | 3756| 13900020 | if PhotoAssets is invalid. | 3757 3758**示例:** 3759 3760```ts 3761import { dataSharePredicates } from '@kit.ArkData'; 3762 3763async function example() { 3764 try { 3765 console.info('recoverPhotoAssetsDemoCallback'); 3766 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3767 let fetchOption: userFileManager.FetchOptions = { 3768 fetchColumns: [], 3769 predicates: predicates 3770 }; 3771 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH); 3772 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3773 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3774 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3775 album.recoverPhotoAssets([asset], (err) => { 3776 if (err === undefined) { 3777 console.info('album recoverPhotoAssets successfully'); 3778 } else { 3779 console.error('album recoverPhotoAssets failed with error: ' + err); 3780 } 3781 }); 3782 } catch (err) { 3783 console.error('recoverPhotoAssetsDemoCallback failed with error: ' + err); 3784 } 3785} 3786``` 3787 3788### recoverPhotoAssets<sup>10+</sup> 3789 3790recoverPhotoAssets(assets: Array<FileAsset>): Promise<void> 3791 3792从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。 3793 3794**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3795 3796**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3797 3798**参数:** 3799 3800| 参数名 | 类型 | 必填 | 说明 | 3801| -------- | ------------------------- | ---- | ---------- | 3802| assets | Array<[FileAsset](#fileasset)> | 是 | 回收站中待恢复图片或者视频数组。 | 3803 3804**返回值:** 3805 3806| 类型 | 说明 | 3807| --------------------------------------- | ----------------- | 3808|Promise<void> | Promise对象,返回void。 | 3809 3810**错误码:** 3811 3812接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3813 3814| 错误码ID | 错误信息 | 3815| -------- | ---------------------------------------- | 3816| 13900020 | if PhotoAssets is invalid. | 3817 3818**示例:** 3819 3820```ts 3821import { dataSharePredicates } from '@kit.ArkData'; 3822import { BusinessError } from '@kit.BasicServicesKit'; 3823 3824async function example() { 3825 try { 3826 console.info('recoverPhotoAssetsDemoPromise'); 3827 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3828 let fetchOption: userFileManager.FetchOptions = { 3829 fetchColumns: [], 3830 predicates: predicates 3831 }; 3832 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH); 3833 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3834 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3835 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3836 album.recoverPhotoAssets([asset]).then(() => { 3837 console.info('album recoverPhotoAssets successfully'); 3838 }).catch((err: BusinessError) => { 3839 console.error('album recoverPhotoAssets failed with error: ' + err); 3840 }); 3841 } catch (err) { 3842 console.error('recoverPhotoAssetsDemoPromise failed with error: ' + err); 3843 } 3844} 3845``` 3846 3847### deletePhotoAssets<sup>10+</sup> 3848 3849deletePhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void 3850 3851从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。 3852 3853**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 3854 3855**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3856 3857**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3858 3859**参数:** 3860 3861| 参数名 | 类型 | 必填 | 说明 | 3862| -------- | ------------------------- | ---- | ---------- | 3863| assets | Array<[FileAsset](#fileasset)> | 是 | 回收站中待彻底删除图片或者视频数组。 | 3864| callback | AsyncCallback<void> | 是 | callback返回void。 | 3865 3866**错误码:** 3867 3868接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3869 3870| 错误码ID | 错误信息 | 3871| -------- | ---------------------------------------- | 3872| 13900020 | if PhotoAssets is invalid. | 3873 3874**示例:** 3875 3876```ts 3877import { dataSharePredicates } from '@kit.ArkData'; 3878 3879async function example() { 3880 try { 3881 console.info('deletePhotoAssetsDemoCallback'); 3882 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3883 let fetchOption: userFileManager.FetchOptions = { 3884 fetchColumns: [], 3885 predicates: predicates 3886 }; 3887 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH); 3888 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3889 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3890 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3891 album.deletePhotoAssets([asset], (err) => { 3892 if (err === undefined) { 3893 console.info('album deletePhotoAssets successfully'); 3894 } else { 3895 console.error('album deletePhotoAssets failed with error: ' + err); 3896 } 3897 }); 3898 } catch (err) { 3899 console.error('deletePhotoAssetsDemoCallback failed with error: ' + err); 3900 } 3901} 3902``` 3903 3904### deletePhotoAssets<sup>10+</sup> 3905 3906deletePhotoAssets(assets: Array<FileAsset>): Promise<void> 3907 3908从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。 3909 3910**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 3911 3912**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3913 3914**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3915 3916**参数:** 3917 3918| 参数名 | 类型 | 必填 | 说明 | 3919| -------- | ------------------------- | ---- | ---------- | 3920| assets | Array<[FileAsset](#fileasset)> | 是 | 回收站中待彻底删除图片或者视频数组。 | 3921 3922**返回值:** 3923 3924| 类型 | 说明 | 3925| --------------------------------------- | ----------------- | 3926|Promise<void> | Promise对象,返回void。 | 3927 3928**错误码:** 3929 3930接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 3931 3932| 错误码ID | 错误信息 | 3933| -------- | ---------------------------------------- | 3934| 13900020 | if PhotoAssets is invalid. | 3935 3936**示例:** 3937 3938```ts 3939import { dataSharePredicates } from '@kit.ArkData'; 3940import { BusinessError } from '@kit.BasicServicesKit'; 3941 3942async function example() { 3943 try { 3944 console.info('deletePhotoAssetsDemoPromise'); 3945 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3946 let fetchOption: userFileManager.FetchOptions = { 3947 fetchColumns: [], 3948 predicates: predicates 3949 }; 3950 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH); 3951 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3952 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3953 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3954 album.deletePhotoAssets([asset]).then(() => { 3955 console.info('album deletePhotoAssets successfully'); 3956 }).catch((err: BusinessError) => { 3957 console.error('album deletePhotoAssets failed with error: ' + err); 3958 }); 3959 } catch (err) { 3960 console.error('deletePhotoAssetsDemoPromise failed with error: ' + err); 3961 } 3962} 3963``` 3964 3965## PrivateAlbum 3966 3967系统相册。 3968 3969此接口即将废弃,请使用[Album](#album)接口替代。 3970 3971### 属性 3972 3973**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3974 3975| 名称 | 类型 | 只读 | 可写 | 说明 | 3976| ------------ | ------ | ---- | ---- | ------- | 3977| albumName | string | 是 | 是 | 相册名称。 | 3978| albumUri | string | 是 | 否 | 相册Uri。 | 3979| dateModified | number | 是 | 否 | 修改日期。 | 3980| count | number | 是 | 否 | 相册中文件数量。 | 3981| coverUri | string | 是 | 否 | 封面文件Uri。 | 3982 3983### getPhotoAssets 3984 3985getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void 3986 3987获取系统相册中的文件。该方法使用callback形式来返回文件。 3988 3989此接口即将废弃,请使用[Album.getPhotoAssets](#getphotoassets-2)接口替代。 3990 3991**需要权限**:ohos.permission.READ_IMAGEVIDEO 3992 3993**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3994 3995**参数:** 3996 3997| 参数名 | 类型 | 必填 | 说明 | 3998| -------- | ------------------------- | ---- | ---------- | 3999| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 4000| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback返回图片和视频数据结果集。 | 4001 4002**错误码:** 4003 4004接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 4005 4006| 错误码ID | 错误信息 | 4007| -------- | ---------------------------------------- | 4008| 13900020 | if type options is not FetchOptions. | 4009 4010**示例:** 4011 4012```ts 4013import { dataSharePredicates } from '@kit.ArkData'; 4014 4015async function example() { 4016 console.info('privateAlbumGetFileAssetsDemoCallback'); 4017 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4018 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4019 let fetchOption: userFileManager.FetchOptions = { 4020 fetchColumns: [], 4021 predicates: predicates 4022 }; 4023 const trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4024 trashAlbum.getPhotoAssets(fetchOption, (err, fetchResult) => { 4025 if (fetchResult != undefined) { 4026 let count = fetchResult.getCount(); 4027 console.info('fetchResult.count = ', count); 4028 } else { 4029 console.error('getFileAssets failed, message = ', err); 4030 } 4031 }); 4032} 4033 4034``` 4035 4036### getPhotoAssets 4037 4038getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>> 4039 4040获取系统相册中的文件。该方法使用Promise来返回文件。 4041 4042此接口即将废弃,请使用[Album.getPhotoAssets](#getphotoassets-3)接口替代。 4043 4044**需要权限**:ohos.permission.READ_IMAGEVIDEO 4045 4046**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4047 4048**参数:** 4049 4050| 参数名 | 类型 | 必填 | 说明 | 4051| -------- | ------------------------- | ---- | ---------- | 4052| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 4053 4054**返回值:** 4055 4056| 类型 | 说明 | 4057| --------------------------------------- | ----------------- | 4058| Promise:[FetchResult](#fetchresult)<[FileAsset](#fileasset)>| Promise对象,返回图片和视频数据结果集。 | 4059 4060**错误码:** 4061 4062接口抛出错误码的详细介绍请参见[文件管理错误码](errorcode-filemanagement.md)。 4063 4064| 错误码ID | 错误信息 | 4065| -------- | ---------------------------------------- | 4066| 13900020 | if type options is not FetchOptions. | 4067 4068**示例:** 4069 4070```ts 4071import { dataSharePredicates } from '@kit.ArkData'; 4072 4073async function example() { 4074 console.info('privateAlbumGetFileAssetsDemoPromise'); 4075 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4076 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4077 let fetchOption: userFileManager.FetchOptions = { 4078 fetchColumns: [], 4079 predicates: predicates 4080 }; 4081 const trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4082 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4083 let count = fetchResult.getCount(); 4084 console.info('fetchResult.count = ', count); 4085} 4086``` 4087 4088### delete 4089 4090delete(uri: string, callback: AsyncCallback<void>): void 4091 4092删除系统相册中的文件,仅支持删除回收站相册中文件。 4093 4094此接口即将废弃,请使用[Album.deletePhotoAssets](#deletephotoassets10)接口替代。 4095 4096**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 4097 4098**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4099 4100**参数:** 4101 4102| 参数名 | 类型 | 必填 | 说明 | 4103| -------- | ------------------------- | ---- | ---------- | 4104| uri | string | 是 | 系统相册中文件的uri。 | 4105| callback | AsyncCallback<void> | 是 | callback返回void。 | 4106 4107**示例:** 4108 4109```ts 4110import { dataSharePredicates } from '@kit.ArkData'; 4111 4112async function example() { 4113 console.info('privateAlbumDeleteCallback'); 4114 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4115 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4116 let fetchOption: userFileManager.FetchOptions = { 4117 fetchColumns: [], 4118 predicates: predicates 4119 }; 4120 let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4121 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4122 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 4123 let deleteFileUri = fileAsset.uri; 4124 trashAlbum.delete(deleteFileUri, (err) => { 4125 if (err != undefined) { 4126 console.error('trashAlbum.delete failed, message = ', err); 4127 } else { 4128 console.info('trashAlbum.delete successfully'); 4129 } 4130 }); 4131} 4132``` 4133 4134### delete 4135 4136delete(uri: string): Promise<void> 4137 4138删除系统相册中的文件,仅支持删除回收站相册中文件。 4139 4140此接口即将废弃,请使用[Album.deletePhotoAssets](#deletephotoassets10)接口替代。 4141 4142**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 4143 4144**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4145 4146**参数:** 4147 4148| 参数名 | 类型 | 必填 | 说明 | 4149| -------- | ------------------------- | ---- | ---------- | 4150| uri | string | 是 | 系统相册中文件的uri。 | 4151 4152**返回值:** 4153 4154| 类型 | 说明 | 4155| --------------------------------------- | ----------------- | 4156| Promise<void>| Promise对象,返回void。 | 4157 4158**示例:** 4159 4160```ts 4161import { dataSharePredicates } from '@kit.ArkData'; 4162import { BusinessError } from '@kit.BasicServicesKit'; 4163 4164async function example() { 4165 console.info('privateAlbumDeleteDemoPromise'); 4166 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4167 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4168 let fetchOption: userFileManager.FetchOptions = { 4169 fetchColumns: [], 4170 predicates: predicates 4171 }; 4172 let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4173 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4174 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 4175 let deleteFileUri = fileAsset.uri; 4176 trashAlbum.delete(deleteFileUri).then(() => { 4177 console.info('trashAlbum.delete successfully'); 4178 }).catch((err: BusinessError) => { 4179 console.error('trashAlbum.delete failed, message = ', err); 4180 }); 4181} 4182``` 4183 4184### recover 4185 4186recover(uri: string, callback: AsyncCallback<void>): void 4187 4188恢复系统相册中的文件,仅支持恢复回收站相册中文件。 4189 4190此接口即将废弃,请使用[Album.recoverPhotoAssets](#recoverphotoassets10)接口替代。 4191 4192**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 4193 4194**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4195 4196**参数:** 4197 4198| 参数名 | 类型 | 必填 | 说明 | 4199| -------- | ------------------------- | ---- | ---------- | 4200| uri | string | 是 | 系统相册中文件的uri。 | 4201| callback | AsyncCallback<void> | 是 | callback返回void。 | 4202 4203**示例:** 4204 4205```ts 4206import { dataSharePredicates } from '@kit.ArkData'; 4207 4208async function example() { 4209 console.info('privateAlbumRecoverDemoCallback'); 4210 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4211 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4212 let fetchOption: userFileManager.FetchOptions = { 4213 fetchColumns: [], 4214 predicates: predicates 4215 }; 4216 let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4217 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4218 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 4219 let recoverFileUri: string = fileAsset.uri; 4220 trashAlbum.recover(recoverFileUri, (err) => { 4221 if (err != undefined) { 4222 console.error('trashAlbum.recover failed, message = ', err); 4223 } else { 4224 console.info('trashAlbum.recover successfully'); 4225 } 4226 }); 4227} 4228``` 4229 4230### recover 4231 4232recover(uri: string): Promise<void> 4233 4234恢复系统相册中的文件,仅支持恢复回收站相册中文件。 4235 4236此接口即将废弃,请使用[Album.recoverPhotoAssets](#recoverphotoassets10)接口替代。 4237 4238**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 4239 4240**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4241 4242**参数:** 4243 4244| 参数名 | 类型 | 必填 | 说明 | 4245| -------- | ------------------------- | ---- | ---------- | 4246| uri | string | 是 | 系统相册中文件的uri。 | 4247 4248**返回值:** 4249 4250| 类型 | 说明 | 4251| --------------------------------------- | ----------------- | 4252| Promise<void>| Promise对象,返回void。 | 4253 4254**示例:** 4255 4256```ts 4257import { dataSharePredicates } from '@kit.ArkData'; 4258import { BusinessError } from '@kit.BasicServicesKit'; 4259 4260async function example() { 4261 console.info('privateAlbumRecoverDemoPromise'); 4262 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4263 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4264 let fetchOption: userFileManager.FetchOptions = { 4265 fetchColumns: [], 4266 predicates: predicates 4267 }; 4268 let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4269 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4270 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 4271 let recoverFileUri: string = fileAsset.uri; 4272 trashAlbum.recover(recoverFileUri).then(() => { 4273 console.info('trashAlbum.recover successfully'); 4274 }).catch((err: BusinessError) => { 4275 console.error('trashAlbum.recover failed, message = ', err); 4276 }); 4277} 4278``` 4279 4280## MemberType 4281 4282成员类型。 4283 4284**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4285 4286| 名称 | 类型 | 只读 | 可写 | 说明 | 4287| ----- | ---- | ---- | ---- | ---- | 4288| number | number | 是 | 是 | number类型。 | 4289| string | string | 是 | 是 | string类型。| 4290| boolean | boolean | 是 | 是 | boolean类型。 | 4291 4292## ChangeEvent 4293 4294变更监听的媒体文件类型。 4295 4296**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4297 4298| 名称 | 类型 | 只读 | 可写 | 说明 | 4299| ----- | ---- | ---- | ---- | ---- | 4300| deviceChange | string | 是 | 是 | 设备。 | 4301| albumChange | string | 是 | 是 | 相册。 | 4302| imageChange | string | 是 | 是 | 图片。 | 4303| audioChange | string | 是 | 是 | 音频。 | 4304| videoChange | string | 是 | 是 | 视频。 | 4305| remoteFileChange | string | 是 | 是 | 远程文件。 | 4306 4307## PeerInfo 4308 4309注册设备的信息。 4310 4311**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 4312 4313| 名称 | 类型 | 只读 | 可写 | 说明 | 4314| ---------- | -------------------------- | ---- | ---- | ---------------- | 4315| deviceName | string | 是 | 否 | 注册设备的名称。 | 4316| networkId | string | 是 | 否 | 注册设备的网络ID。 | 4317| isOnline | boolean | 是 | 否 | 是否在线。true是在线,false为不在线 | 4318 4319## FileType 4320 4321枚举,媒体文件类型。 4322 4323**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4324 4325| 名称 | 值 | 说明 | 4326| ----- | ---- | ---- | 4327| IMAGE | 1 | 图片。 | 4328| VIDEO | 2 | 视频。 | 4329| AUDIO | 3 | 音频。 | 4330 4331## PhotoSubType<sup>10+</sup> 4332 4333枚举,不同[FileAsset](#fileasset)的类型。 4334 4335**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4336 4337| 名称 | 值 | 说明 | 4338| ----- | ---- | ---- | 4339| DEFAULT | 0 | 默认照片类型。 | 4340| SCREENSHOT | 1 | 截屏录屏文件类型。 | 4341| CAMERA | 2 | 相机拍摄的照片和视频类型。 | 4342 4343## PositionType<sup>10+</sup> 4344 4345枚举,文件位置,表示文件在本地或云端。 4346 4347**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4348 4349| 名称 | 值 | 说明 | 4350| ----- | ---- | ---- | 4351| LOCAL | 1 | 文件只存在于本地。 | 4352| CLOUD | 2 | 文件只存在于云端。 | 4353| BOTH | 3 | 文件在本地和云端中都存在。 | 4354 4355## AlbumType<sup>10+</sup> 4356 4357枚举,相册类型,表示是用户相册还是系统预置相册。 4358 4359**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4360 4361| 名称 | 值 | 说明 | 4362| ----- | ---- | ---- | 4363| USER | 0 | 用户相册。 | 4364| SYSTEM | 1024 | 系统预置相册。 | 4365 4366## AlbumSubType<sup>10+</sup> 4367 4368枚举,相册子类型,表示具体的相册类型。 4369 4370**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4371 4372| 名称 | 值 | 说明 | 4373| ----- | ---- | ---- | 4374| USER_GENERIC | 1 | 用户相册。 | 4375| FAVORITE | 1025 | 收藏夹。 | 4376| VIDEO | 1026 | 视频相册。 | 4377| HIDDEN | 1027 | 隐藏相册。 | 4378| TRASH | 1028 | 回收站。 | 4379| SCREENSHOT | 1029 | 截屏和录屏相册。 | 4380| CAMERA | 1030 | 相机拍摄的照片和视频相册。 | 4381| ANY | 2147483647 | 任意相册。 | 4382 4383## PrivateAlbumType 4384 4385枚举,系统相册类型。 4386 4387此接口即将废弃,请使用[AlbumType](#albumtype10)和[AlbumSubType](#albumsubtype10)和接口替代。 4388 4389**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4390 4391| 名称 | 值 | 说明 | 4392| ----- | ---- | ---- | 4393| TYPE_FAVORITE | 0 | 收藏夹相册。 | 4394| TYPE_TRASH | 1 | 回收站相册。 | 4395 4396## AudioKey 4397 4398枚举,音频文件关键信息。 4399 4400**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4401 4402| 名称 | 值 | 说明 | 4403| ------------- | ------------------- | ---------------------------------------------------------- | 4404| URI | uri | 文件uri。 | 4405| DISPLAY_NAME | display_name | 显示名字。 | 4406| DATE_ADDED | date_added | 添加日期(添加文件时间距1970年1月1日的秒数值)。 | 4407| DATE_MODIFIED | date_modified | 修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。 | 4408| TITLE | title | 文件标题。 | 4409| ARTIST | artist | 作者。 | 4410| AUDIOALBUM | audio_album | 专辑。 | 4411| DURATION | duration | 持续时间(单位:毫秒)。 | 4412| FAVORITE | favorite | 收藏。 | 4413 4414## ImageVideoKey 4415 4416枚举,图片和视频文件关键信息。 4417 4418**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4419 4420| 名称 | 值 | 说明 | 4421| ------------- | ------------------- | ---------------------------------------------------------- | 4422| URI | uri | 文件uri。 | 4423| FILE_TYPE | file_type | 媒体文件类型。 | 4424| DISPLAY_NAME | display_name | 显示名字。 | 4425| DATE_ADDED | date_added | 添加日期(添加文件时间距1970年1月1日的秒数值)。 | 4426| DATE_MODIFIED | date_modified | 修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。 | 4427| TITLE | title | 文件标题。 | 4428| DURATION | duration | 持续时间(单位:毫秒)。 | 4429| WIDTH | width | 图片宽度(单位:像素)。 | 4430| HEIGHT | height | 图片高度(单位:像素)。 | 4431| DATE_TAKEN | date_taken | 拍摄日期(文件拍照时间距1970年1月1日的秒数值)。 | 4432| ORIENTATION | orientation | 图片文件的方向。 | 4433| FAVORITE | favorite | 收藏。 | 4434| POSITION<sup>10+</sup> | position | 文件位置类型。 | 4435| DATE_TRASHED<sup>10+</sup> | date_trashed | 删除日期(删除文件时间距1970年1月1日的秒数值)。 | 4436| HIDDEN<sup>10+</sup> | hidden | 文件的隐藏状态。 | 4437| CAMERA_SHOT_KEY<sup>10+</sup> | camera_shot_key | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。 | 4438| USER_COMMENT<sup>10+</sup> | user_comment | 用户注释信息。 | 4439 4440## AlbumKey 4441 4442枚举,相册关键信息。 4443 4444**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4445 4446| 名称 | 值 | 说明 | 4447| ------------- | ------------------- | ---------------------------------------------------------- | 4448| URI | uri | 相册uri。 | 4449| FILE_TYPE | file_type | 媒体文件类型。 | 4450| ALBUM_NAME | album_name | 相册名字。 | 4451| DATE_ADDED | date_added | 添加日期(添加文件时间距1970年1月1日的秒数值)。 | 4452| DATE_MODIFIED | date_modified | 修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。 | 4453 4454## PhotoCreateOptions<sup>10+</sup> 4455 4456图片或视频的创建选项。 4457 4458**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4459 4460| 名称 | 类型 | 必填 | 说明 | 4461| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 4462| subType | [PhotoSubType](#photosubtype10) | 否 | 图片或者视频的子类型。 | 4463| cameraShotKey | string | 否 | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。 | 4464 4465## FetchOptions 4466 4467检索条件。 4468 4469**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4470 4471| 名称 | 类型 | 只读 | 可写 | 说明 | 4472| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ | 4473| fetchColumns | Array<string> | 是 | 是 | 检索条件,指定列名查询,如果该参数为空时默认查询uri、name、fileType(具体字段名称以检索对象定义为准)且使用[get](#get)接口去获取当前对象的其他属性时将会报错。示例:<br />fetchColumns: ['uri', 'title']。 | 4474| predicates | [dataSharePredicates.DataSharePredicates](../apis-arkdata/js-apis-data-dataSharePredicates-sys.md) | 是 | 是 | 谓词查询,显示过滤条件。 | 4475 4476## AlbumFetchOptions 4477 4478相册检索条件。 4479 4480**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4481 4482| 名称 | 类型 | 只读 | 可写 | 说明 | 4483| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ | 4484| predicates | [dataSharePredicates.DataSharePredicates](../apis-arkdata/js-apis-data-dataSharePredicates-sys.md) | 是 | 是 | 谓词查询,显示过滤条件。 | 4485 4486## ChangeData<sup>10+</sup> 4487 4488监听器回调函数的值。 4489 4490**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4491 4492| 名称 | 类型 | 只读 | 可写 | 说明 | 4493| ------- | --------------------------- | ---- | ---- | ------------------------------------------------------------ | 4494| type | [NotifyType](#notifytype10) | 是 | 否 | ChangeData的通知类型。 | 4495| uris | Array<string> | 是 | 否 | 相同[NotifyType](#notifytype10)的所有uri,可以是FileAsset或Album。 | 4496| subUris | Array<string> | 是 | 否 | 相册中变动文件的uri数组。可能为undefined,使用前需要检查是否为undefined。| 4497 4498## NotifyType<sup>10+</sup> 4499 4500枚举,通知事件的类型。 4501 4502**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4503 4504| 名称 | 值 | 说明 | 4505| ------------------------- | ---- | -------------------------------- | 4506| NOTIFY_ADD | 0 | 添加文件集或相册通知的类型。 | 4507| NOTIFY_UPDATE | 1 | 文件集或相册的更新通知类型。 | 4508| NOTIFY_REMOVE | 2 | 删除文件集或相册的通知类型。 | 4509| NOTIFY_ALBUM_ADD_ASSET | 3 | 在相册中添加的文件集的通知类型。 | 4510| NOTIFY_ALBUM_REMOVE_ASSET | 4 | 在相册中删除的文件集的通知类型。 | 4511 4512## DefaultChangeUri<sup>10+</sup> 4513 4514枚举,DefaultChangeUri子类型。 4515 4516**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4517 4518| 名称 | 值 | 说明 | 4519| ----------------- | ----------------------- | ------------------------------------------------------------ | 4520| DEFAULT_PHOTO_URI | file://media/Photo | 默认PhotoAsset的Uri,与forSubUri{true}一起使用,将接收所有PhotoAsset的更改通知。 | 4521| DEFAULT_ALBUM_URI | file://media/PhotoAlbum | 默认相册的Uri,与forSubUri{true}一起使用,将接收所有相册的更改通知。 | 4522| DEFAULT_AUDIO_URI | file://media/Audio | 默认AudioAsset的Uri,与forSubUri{true}一起使用,将接收所有AudioAsset的更改通知。 | 4523 4524