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