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