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