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 1416**返回值:** 1417 1418| 类型 | 说明 | 1419| --------------------------------------- | ----------------- | 1420| AsyncCallback<number>| 返回相册中资源的索引。 | 1421 1422**错误码:** 1423 1424接口抛出错误码的详细介绍请参见[通用错误码](../errorcodes/errorcode-universal.md)。 1425 1426| 错误码ID | 错误信息 | 1427| -------- | ---------------------------------------- | 1428| 401 | if parameter is invalid. | 1429 1430**示例:** 1431 1432```ts 1433import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1434 1435async function example() { 1436 try { 1437 console.info('getPhotoIndexDemo'); 1438 let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1439 let fetchOp: userFileManager.FetchOptions = { 1440 fetchColumns: [], 1441 predicates: predicatesForGetAsset 1442 }; 1443 // Obtain the uri of the album 1444 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.FAVORITE, fetchOp); 1445 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 1446 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1447 predicates.orderByAsc(userFileManager.ImageVideoKey.DATE_MODIFIED.toString()); 1448 let fetchOptions: userFileManager.FetchOptions = { 1449 fetchColumns: [userFileManager.ImageVideoKey.DATE_MODIFIED.toString()], 1450 predicates: predicates 1451 }; 1452 let photoFetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOptions); 1453 let expectIndex = 1; 1454 // Obtain the uri of the second file 1455 let photoAsset: userFileManager.FileAsset = await photoFetchResult.getPositionObject(expectIndex); 1456 mgr.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions, (err, index) => { 1457 if (err == undefined) { 1458 console.info(`getPhotoIndex successfully and index is : ${index}`); 1459 } else { 1460 console.info(`getPhotoIndex failed;`); 1461 } 1462 }); 1463 } catch (error) { 1464 console.info(`getPhotoIndex failed; error: ${error}`); 1465 } 1466} 1467``` 1468 1469### getPhotoIndex<sup>10+</sup> 1470 1471getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise<number> 1472 1473获取相册中图片或视频的位置,使用Promise方式返回结果。 1474 1475**系统接口**:此接口为系统接口。 1476 1477**需要权限**:ohos.permission.READ_IMAGEVIDEO 1478 1479**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1480 1481**参数:** 1482 1483| 参数名 | 类型 | 必填 | 说明 | 1484| -------- | ------------------------- | ---- | ---------- | 1485| photoUri | string | 是 | 所查询的图库资源的uri。 | 1486| albumUri | string | 是 | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。 | 1487| options | [FetchOptions](#fetchoptions) | 是 | 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。 | 1488 1489**返回值:** 1490 1491| 类型 | 说明 | 1492| --------------------------------------- | ----------------- | 1493| Promise<number>| 返回相册中资源的索引。 | 1494 1495**错误码:** 1496 1497接口抛出错误码的详细介绍请参见[通用错误码](../errorcodes/errorcode-universal.md)。 1498 1499| 错误码ID | 错误信息 | 1500| -------- | ---------------------------------------- | 1501| 401 | if parameter is invalid. | 1502 1503**示例:** 1504 1505```ts 1506import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1507import { BusinessError } from '@ohos.base'; 1508 1509async function example() { 1510 try { 1511 console.info('getPhotoIndexDemo'); 1512 let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1513 let fetchOp: userFileManager.FetchOptions = { 1514 fetchColumns: [], 1515 predicates: predicatesForGetAsset 1516 }; 1517 // Obtain the uri of the album 1518 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.FAVORITE, fetchOp); 1519 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 1520 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1521 predicates.orderByAsc(userFileManager.ImageVideoKey.DATE_MODIFIED.toString()); 1522 let fetchOptions: userFileManager.FetchOptions = { 1523 fetchColumns: [userFileManager.ImageVideoKey.DATE_MODIFIED.toString()], 1524 predicates: predicates 1525 }; 1526 let photoFetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOptions); 1527 let expectIndex = 1; 1528 // Obtain the uri of the second file 1529 let photoAsset: userFileManager.FileAsset = await photoFetchResult.getPositionObject(expectIndex); 1530 mgr.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions).then((index) => { 1531 console.info(`getPhotoIndex successfully and index is : ${index}`); 1532 }).catch((err: BusinessError) => { 1533 console.info(`getPhotoIndex failed; error: ${err}`); 1534 }); 1535 } catch (error) { 1536 console.info(`getPhotoIndex failed; error: ${error}`); 1537 } 1538} 1539``` 1540 1541### release 1542 1543release(callback: AsyncCallback<void>): void 1544 1545释放UserFileManager实例。 1546当后续不需要使用UserFileManager实例中的方法时调用。 1547 1548**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1549 1550**参数:** 1551 1552| 参数名 | 类型 | 必填 | 说明 | 1553| -------- | ------------------------- | ---- | -------------------- | 1554| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 1555 1556**示例:** 1557 1558```ts 1559async function example() { 1560 console.info('releaseDemo'); 1561 mgr.release((err) => { 1562 if (err != undefined) { 1563 console.error('release failed. message = ', err); 1564 } else { 1565 console.info('release ok.'); 1566 } 1567 }); 1568} 1569``` 1570 1571### release 1572 1573release(): Promise<void> 1574 1575释放UserFileManager实例。 1576当后续不需要使用UserFileManager 实例中的方法时调用。 1577 1578**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1579 1580**返回值:** 1581 1582| 类型 | 说明 | 1583| ------------------- | --------------------------------- | 1584| Promise<void> | Promise对象,返回void。 | 1585 1586**示例:** 1587 1588```ts 1589async function example() { 1590 console.info('releaseDemo'); 1591 try { 1592 await mgr.release(); 1593 console.info('release ok.'); 1594 } catch (err) { 1595 console.error('release failed. message = ', err); 1596 } 1597} 1598``` 1599 1600### on<sup>10+</sup> 1601 1602on(uri: string, forSubUri: boolean, callback: Callback<ChangeData>) : void 1603 1604对指定uri注册监听,使用callback方式返回异步结果。 1605 1606**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1607 1608**参数:** 1609 1610| 参数名 | 类型 | 必填 | 说明 | 1611| --------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 1612| uri | string | 是 | FileAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri10)的值。 | 1613| forSubUri | boolean | 是 | 是否模糊监听,uri为相册uri时,forSubUri 为true能监听到相册中文件的变化,如果是false只能监听相册本身变化。uri为fileAsset时,forSubUri 为true、false没有区别,uri为DefaultChangeUri时,forSubUri必须为true,如果为false将找不到该uri,收不到任何消息。 | 1614| callback | Callback<[ChangeData](#changedata10)> | 是 | 返回要监听的[ChangeData](#changedata10)。注:uri可以注册多个不同的callback监听,[off<sup>10+</sup>](#off10)可以关闭该uri所有监听,也可以关闭指定callback的监听。 | 1615 1616**错误码:** 1617 1618接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 1619 1620| 错误码ID | 错误信息 | 1621| -------- | ---------------------------------------- | 1622| 13900020 | if parameter is invalid. | 1623 1624**示例:** 1625 1626```ts 1627import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1628 1629async function example() { 1630 console.info('onDemo'); 1631 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1632 let fetchOptions: userFileManager.FetchOptions = { 1633 fetchColumns: [], 1634 predicates: predicates 1635 }; 1636 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 1637 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1638 if (fileAsset != undefined) { 1639 console.info('fileAsset.displayName : ' + fileAsset.displayName); 1640 } 1641 let onCallback1 = (changeData: userFileManager.ChangeData) => { 1642 console.info('onCallback1 success, changData: ' + JSON.stringify(changeData)); 1643 //file had changed, do something 1644 } 1645 let onCallback2 = (changeData: userFileManager.ChangeData) => { 1646 console.info('onCallback2 success, changData: ' + JSON.stringify(changeData)); 1647 //file had changed, do something 1648 } 1649 // 注册onCallback1监听 1650 mgr.on(fileAsset.uri, false, onCallback1); 1651 // 注册onCallback2监听 1652 mgr.on(fileAsset.uri, false, onCallback2); 1653 1654 fileAsset.favorite(true, (err) => { 1655 if (err == undefined) { 1656 console.info('favorite successfully'); 1657 } else { 1658 console.error('favorite failed with error:' + err); 1659 } 1660 }); 1661} 1662``` 1663 1664### off<sup>10+</sup> 1665 1666 off(uri: string, callback?: Callback<ChangeData>): void 1667 1668取消对指定uri的监听,一个uri可以注册多个监听,存在多个callback监听时,可以取消指定注册的callback的监听;不指定callback时解除该uri的所有监听。 1669 1670**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1671 1672**参数:** 1673 1674| 参数名 | 类型 | 必填 | 说明 | 1675| -------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 1676| uri | string | 是 | FileAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri10)的值。 | 1677| callback | Callback<[ChangeData](#changedata10)> | 否 | 取消[on<sup>10+</sup>](#on10)注册时的callback的监听,不填时,取消该uri的所有监听。注:off指定注册的callback后不会进入此回调。 | 1678 1679**错误码:** 1680 1681接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 1682 1683| 错误码ID | 错误信息 | 1684| -------- | ---------------------------------------- | 1685| 13900020 | if parameter is invalid. | 1686 1687**示例:** 1688 1689```ts 1690import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1691 1692async function example() { 1693 console.info('offDemo'); 1694 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1695 let fetchOptions: userFileManager.FetchOptions = { 1696 fetchColumns: [], 1697 predicates: predicates 1698 }; 1699 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 1700 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1701 if (fileAsset != undefined) { 1702 console.info('fileAsset.displayName : ' + fileAsset.displayName); 1703 } 1704 let onCallback1 = (changeData: userFileManager.ChangeData) => { 1705 console.info('onCallback1 on'); 1706 } 1707 let onCallback2 = (changeData: userFileManager.ChangeData) => { 1708 console.info('onCallback2 on'); 1709 } 1710 // 注册onCallback1监听 1711 mgr.on(fileAsset.uri, false, onCallback1); 1712 // 注册onCallback2监听 1713 mgr.on(fileAsset.uri, false, onCallback2); 1714 // 关闭onCallback1监听,onCallback2 继续监听 1715 mgr.off(fileAsset.uri, onCallback1); 1716 fileAsset.favorite(true, (err) => { 1717 if (err == undefined) { 1718 console.info('favorite successfully'); 1719 } else { 1720 console.error('favorite failed with error:' + err); 1721 } 1722 }); 1723} 1724``` 1725 1726### on 1727 1728on(type: ChangeEvent, callback: Callback<void>): void 1729 1730打开文件管理库变更通知,使用callback方式返回异步结果。 1731 1732此接口即将废弃,请使用[on<sup>10+</sup>](#on10)的新接口。 1733 1734**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1735 1736**参数:** 1737 1738| 参数名 | 类型 | 必填 | 说明 | 1739| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1740| type | [ChangeEvent](#changeevent) | 是 | 媒体类型 <br/>'deviceChange': 注册设备变更 <br/>'albumChange': 相册变更<br/>'imageChange': 图片文件变更<br/>'audioChange': 音频文件变更<br/>'videoChange': 视频文件变更<br/>'remoteFileChange': 注册设备上文件变更 | 1741| callback | Callback<void> | 是 | callback返回void | 1742 1743**示例:** 1744 1745```ts 1746async function example() { 1747 console.info('onDemo'); 1748 let count = 0; 1749 mgr.on('imageChange', () => { 1750 count++; 1751 // image file had changed, do something 1752 }); 1753 try { 1754 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1755 let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 1756 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 1757 console.info('createPhotoAsset successfully'); 1758 } catch (err) { 1759 console.error('createPhotoAsset failed, message = ' + err); 1760 } 1761 //sleep 1s 1762 if (count > 0) { 1763 console.info('onDemo success'); 1764 } else { 1765 console.error('onDemo fail'); 1766 } 1767 mgr.off('imageChange', () => { 1768 // stop listening success 1769 }); 1770} 1771``` 1772 1773### off 1774 1775off(type: ChangeEvent, callback?: Callback<void>): void 1776 1777关闭文件管理库变更通知,使用callback方式返回异步结果。 1778 1779此接口即将废弃,请使用[off<sup>10+</sup>](#off10)的新接口。 1780 1781**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1782 1783**参数:** 1784 1785| 参数名 | 类型 | 必填 | 说明 | 1786| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1787| type | [ChangeEvent](#changeevent) | 是 | 媒体类型 <br/>'deviceChange': 注册设备变更 <br/>'albumChange': 相册变更<br/>'imageChange': 图片文件变更<br/>'audioChange': 音频文件变更<br/>'videoChange': 视频文件变更<br/>'remoteFileChange': 注册设备上文件变更。 | 1788| callback | Callback<void> | 否 | callback返回void。 | 1789 1790**示例:** 1791 1792```ts 1793async function example() { 1794 console.info('offDemo'); 1795 let count = 0; 1796 mgr.on('imageChange', () => { 1797 count++; 1798 // image file had changed, do something 1799 }); 1800 1801 mgr.off('imageChange', () => { 1802 // stop listening success 1803 }); 1804 1805 try { 1806 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1807 let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 1808 console.info('createPhotoAsset file displayName' + fileAsset.displayName); 1809 console.info('createPhotoAsset successfully'); 1810 } catch (err) { 1811 console.error('createPhotoAsset failed, message = ' + err); 1812 } 1813 //sleep 1s 1814 if (count == 0) { 1815 console.info('offDemo success'); 1816 } else { 1817 console.error('offDemo fail'); 1818 } 1819} 1820``` 1821 1822## FileAsset 1823 1824提供封装文件属性的方法。 1825 1826### 属性 1827 1828**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1829 1830| 名称 | 类型 | 可读 | 可写 | 说明 | 1831| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ | 1832| uri | string | 是 | 否 | 媒体文件资源uri(如:file://media/Photo/1/IMG_datetime_0001/displayName.jpg),详情参见用户文件uri介绍中的[媒体文件uri](../../file-management/user-file-uri-intro.md#媒体文件uri)。 | 1833| fileType | [FileType](#filetype) | 是 | 否 | 媒体文件类型 | 1834| displayName | string | 是 | 是 | 显示文件名,包含后缀名。 | 1835 1836### get 1837 1838get(member: string): MemberType; 1839 1840获取FileAsset成员参数。 1841 1842**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1843 1844**参数:** 1845 1846| 参数名 | 类型 | 必填 | 说明 | 1847| -------- | ------------------------- | ---- | ----- | 1848| member | string | 是 | 成员参数名称例如:ImageVideoKey.URI。 | 1849 1850**示例:** 1851 1852```ts 1853import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1854 1855async function example() { 1856 console.info('fileAssetGetDemo'); 1857 try { 1858 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1859 let fetchOption: userFileManager.FetchOptions = { 1860 fetchColumns: ['title'], 1861 predicates: predicates 1862 }; 1863 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 1864 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1865 let title: userFileManager.ImageVideoKey = userFileManager.ImageVideoKey.TITLE; 1866 let fileAssetTitle: userFileManager.MemberType = fileAsset.get(title.toString()); 1867 console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle); 1868 } catch (err) { 1869 console.error('release failed. message = ', err); 1870 } 1871} 1872``` 1873 1874### set 1875 1876set(member: string, value: string): void; 1877 1878设置FileAsset成员参数。 1879 1880**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1881 1882**参数:** 1883 1884| 参数名 | 类型 | 必填 | 说明 | 1885| -------- | ------------------------- | ---- | ----- | 1886| member | string | 是 | 成员参数名称例如:ImageVideoKey.URI。 | 1887| value | string | 是 | 设置成员参数名称,只能修改ImageVideoKey.DISPLAY_NAME的值。 | 1888 1889**示例:** 1890 1891```ts 1892import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1893 1894async function example() { 1895 console.info('fileAssetSetDemo'); 1896 try { 1897 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1898 let fetchOption: userFileManager.FetchOptions = { 1899 fetchColumns: [], 1900 predicates: predicates 1901 }; 1902 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 1903 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1904 let displayName: string = userFileManager.ImageVideoKey.DISPLAY_NAME.toString(); 1905 fileAsset.set(displayName, 'newDisplayName1'); 1906 } catch (err) { 1907 console.error('release failed. message = ', err); 1908 } 1909} 1910``` 1911 1912### commitModify 1913 1914commitModify(callback: AsyncCallback<void>): void 1915 1916修改文件的元数据,使用callback方式返回异步结果。 1917 1918**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1919 1920**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1921 1922**参数:** 1923 1924| 参数名 | 类型 | 必填 | 说明 | 1925| -------- | ------------------------- | ---- | ----- | 1926| callback | AsyncCallback<void> | 是 | callback返回void。 | 1927 1928**示例:** 1929 1930```ts 1931import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1932 1933async function example() { 1934 console.info('commitModifyDemo'); 1935 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1936 let fetchOption: userFileManager.FetchOptions = { 1937 fetchColumns: [], 1938 predicates: predicates 1939 }; 1940 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 1941 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1942 let displayName: string = userFileManager.ImageVideoKey.DISPLAY_NAME.toString(); 1943 let fileAssetDisplayName: userFileManager.MemberType = fileAsset.get(displayName); 1944 console.info('fileAsset get fileAssetDisplayName = ', fileAssetDisplayName); 1945 fileAsset.set(displayName, 'newDisplayName2'); 1946 fileAsset.commitModify((err) => { 1947 if (err == undefined) { 1948 let newFileAssetDisplayName: userFileManager.MemberType = fileAsset.get(displayName); 1949 console.info('fileAsset get newFileAssetDisplayName = ', newFileAssetDisplayName); 1950 } else { 1951 console.error('commitModify failed, message =', err); 1952 } 1953 }); 1954} 1955``` 1956 1957### commitModify 1958 1959commitModify(): Promise<void> 1960 1961修改文件的元数据,使用promise方式返回异步结果。 1962 1963**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 1964 1965**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 1966 1967**返回值:** 1968 1969| 类型 | 说明 | 1970| ------------------- | ---------- | 1971| Promise<void> | Promise对象,返回void。 | 1972 1973**示例:** 1974 1975```ts 1976import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1977 1978async function example() { 1979 console.info('commitModifyDemo'); 1980 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1981 let fetchOption: userFileManager.FetchOptions = { 1982 fetchColumns: [], 1983 predicates: predicates 1984 }; 1985 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 1986 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 1987 let displayName = userFileManager.ImageVideoKey.DISPLAY_NAME.toString(); 1988 let newFileAssetDisplayName: userFileManager.MemberType = fileAsset.get(displayName); 1989 console.info('fileAsset get fileAssetDisplayName = ', fileAssetDisplayName); 1990 fileAsset.set(displayName, 'newDisplayName3'); 1991 try { 1992 await fileAsset.commitModify(); 1993 let newFileAssetDisplayName: userFileManager.MemberType = fileAsset.get(displayName); 1994 console.info('fileAsset get newFileAssetDisplayName = ', newFileAssetDisplayName); 1995 } catch (err) { 1996 console.error('release failed. message = ', err); 1997 } 1998} 1999``` 2000 2001### open 2002 2003open(mode: string, callback: AsyncCallback<number>): void 2004 2005打开当前文件,使用callback方式返回异步结果。 2006 2007**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。 2008 2009**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 2010 2011**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2012 2013**参数:** 2014 2015| 参数名 | 类型 | 必填 | 说明 | 2016| -------- | --------------------------- | ---- | ----------------------------------- | 2017| mode | string | 是 | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)。 | 2018| callback | AsyncCallback<number> | 是 | callback返回文件描述符。 | 2019 2020**示例:** 2021 2022```ts 2023async function example() { 2024 console.info('openDemo'); 2025 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 2026 const fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 2027 fileAsset.open('rw', (err, fd) => { 2028 if (fd != undefined) { 2029 console.info('File fd' + fd); 2030 fileAsset.close(fd); 2031 } else { 2032 console.error('File err' + err); 2033 } 2034 }); 2035} 2036``` 2037 2038### open 2039 2040open(mode: string): Promise<number> 2041 2042打开当前文件,使用promise方式返回异步结果。 2043 2044**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。 2045 2046**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 2047 2048**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2049 2050**参数:** 2051 2052| 参数名 | 类型 | 必填 | 说明 | 2053| ---- | ------ | ---- | ----------------------------------- | 2054| mode | string | 是 | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)。 | 2055 2056**返回值:** 2057 2058| 类型 | 说明 | 2059| --------------------- | ------------- | 2060| Promise<number> | Promise对象,返回文件描述符。 | 2061 2062**示例:** 2063 2064```ts 2065async function example() { 2066 console.info('openDemo'); 2067 try { 2068 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 2069 const fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName); 2070 let fd: number = await fileAsset.open('rw'); 2071 if (fd != undefined) { 2072 console.info('File fd' + fd); 2073 fileAsset.close(fd); 2074 } else { 2075 console.error(' open File fail'); 2076 } 2077 } catch (err) { 2078 console.error('open Demo err' + err); 2079 } 2080} 2081``` 2082 2083### close 2084 2085close(fd: number, callback: AsyncCallback<void>): void 2086 2087关闭当前文件,使用callback方式返回异步结果。 2088 2089**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2090 2091**参数:** 2092 2093| 参数名 | 类型 | 必填 | 说明 | 2094| -------- | ------------------------- | ---- | ----- | 2095| fd | number | 是 | 文件描述符。 | 2096| callback | AsyncCallback<void> | 是 | callback返回void。 | 2097 2098**示例:** 2099 2100```ts 2101import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2102 2103async function example() { 2104 console.info('closeDemo'); 2105 try { 2106 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2107 let fetchOption: userFileManager.FetchOptions = { 2108 fetchColumns: [], 2109 predicates: predicates 2110 }; 2111 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2112 const fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2113 let fd: number = await fileAsset.open('rw'); 2114 console.info('file fd', fd); 2115 fileAsset.close(fd, (err) => { 2116 if (err == undefined) { 2117 console.info('asset close succeed.'); 2118 } else { 2119 console.error('close failed, message = ' + err); 2120 } 2121 }); 2122 } catch (err) { 2123 console.error('close failed, message = ' + err); 2124 } 2125} 2126``` 2127 2128### close 2129 2130close(fd: number): Promise<void> 2131 2132关闭当前文件,使用promise方式返回异步结果。 2133 2134**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2135 2136**参数:** 2137 2138| 参数名 | 类型 | 必填 | 说明 | 2139| ---- | ------ | ---- | ----- | 2140| fd | number | 是 | 文件描述符。 | 2141 2142**返回值:** 2143 2144| 类型 | 说明 | 2145| ------------------- | ---------- | 2146| Promise<void> | Promise对象,返回void。 | 2147 2148**示例:** 2149 2150```ts 2151import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2152 2153async function example() { 2154 console.info('closeDemo'); 2155 try { 2156 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2157 let fetchOption: userFileManager.FetchOptions = { 2158 fetchColumns: [], 2159 predicates: predicates 2160 }; 2161 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2162 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2163 let fd: number = await asset.open('rw'); 2164 console.info('file fd', fd); 2165 await asset.close(fd); 2166 console.info('asset close succeed.'); 2167 } catch (err) { 2168 console.error('close failed, message = ' + err); 2169 } 2170} 2171``` 2172 2173### getThumbnail 2174 2175getThumbnail(callback: AsyncCallback<image.PixelMap>): void 2176 2177获取文件的缩略图,使用callback方式返回异步结果。 2178 2179**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 2180 2181**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2182 2183**参数:** 2184 2185| 参数名 | 类型 | 必填 | 说明 | 2186| -------- | ----------------------------------- | ---- | ---------------- | 2187| callback | AsyncCallback<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | callback返回缩略图的PixelMap。 | 2188 2189**示例:** 2190 2191```ts 2192import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2193 2194async function example() { 2195 console.info('getThumbnailDemo'); 2196 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2197 let fetchOption: userFileManager.FetchOptions = { 2198 fetchColumns: [], 2199 predicates: predicates 2200 }; 2201 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2202 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2203 console.info('asset displayName = ', asset.displayName); 2204 asset.getThumbnail((err, pixelMap) => { 2205 if (err == undefined) { 2206 console.info('getThumbnail successful ' + pixelMap); 2207 } else { 2208 console.error('getThumbnail fail', err); 2209 } 2210 }); 2211} 2212``` 2213 2214### getThumbnail 2215 2216getThumbnail(size: image.Size, callback: AsyncCallback<image.PixelMap>): void 2217 2218获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。 2219 2220**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 2221 2222**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2223 2224**参数:** 2225 2226| 参数名 | 类型 | 必填 | 说明 | 2227| -------- | ----------------------------------- | ---- | ---------------- | 2228| size | [image.Size](js-apis-image.md#size) | 是 | 缩略图尺寸。 | 2229| callback | AsyncCallback<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | callback返回缩略图的PixelMap。 | 2230 2231**示例:** 2232 2233```ts 2234import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2235import image from '@ohos.multimedia.image'; 2236 2237async function example() { 2238 console.info('getThumbnailDemo'); 2239 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2240 let fetchOption: userFileManager.FetchOptions = { 2241 fetchColumns: [], 2242 predicates: predicates 2243 }; 2244 let size: image.Size = { width: 720, height: 720 }; 2245 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2246 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2247 console.info('asset displayName = ', asset.displayName); 2248 asset.getThumbnail(size, (err, pixelMap) => { 2249 if (err == undefined) { 2250 console.info('getThumbnail successful ' + pixelMap); 2251 } else { 2252 console.error('getThumbnail fail', err); 2253 } 2254 }); 2255} 2256``` 2257 2258### getThumbnail 2259 2260getThumbnail(size?: image.Size): Promise<image.PixelMap> 2261 2262获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。 2263 2264**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 2265 2266**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2267 2268**参数:** 2269 2270| 参数名 | 类型 | 必填 | 说明 | 2271| ---- | -------------- | ---- | ----- | 2272| size | [image.Size](js-apis-image.md#size) | 否 | 缩略图尺寸。 | 2273 2274**返回值:** 2275 2276| 类型 | 说明 | 2277| ----------------------------- | --------------------- | 2278| Promise<[image.PixelMap](js-apis-image.md#pixelmap7)> | Promise对象,返回缩略图的PixelMap。 | 2279 2280**示例:** 2281 2282```ts 2283import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2284import image from '@ohos.multimedia.image'; 2285import { BusinessError } from '@ohos.base'; 2286 2287async function example() { 2288 console.info('getThumbnailDemo'); 2289 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2290 let fetchOption: userFileManager.FetchOptions = { 2291 fetchColumns: [], 2292 predicates: predicates 2293 }; 2294 let size: image.Size = { width: 720, height: 720 }; 2295 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2296 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2297 console.info('asset displayName = ', asset.displayName); 2298 asset.getThumbnail(size).then((pixelMap) => { 2299 console.info('getThumbnail successful ' + pixelMap); 2300 }).catch((err: BusinessError) => { 2301 console.error('getThumbnail fail' + err); 2302 }); 2303} 2304``` 2305 2306### favorite 2307 2308favorite(isFavorite: boolean, callback: AsyncCallback<void>): void 2309 2310将文件设置为收藏文件,使用callback方式返回异步结果。 2311 2312**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 2313 2314**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2315 2316**参数:** 2317 2318| 参数名 | 类型 | 必填 | 说明 | 2319| ---------- | ------------------------- | ---- | ---------------------------------- | 2320| isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 | 2321| callback | AsyncCallback<void> | 是 | callback返回void。 | 2322 2323**示例:** 2324 2325```ts 2326import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2327 2328async function example() { 2329 console.info('favoriteDemo'); 2330 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2331 let fetchOption: userFileManager.FetchOptions = { 2332 fetchColumns: [], 2333 predicates: predicates 2334 }; 2335 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2336 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2337 asset.favorite(true, (err) => { 2338 if (err == undefined) { 2339 console.info('favorite successfully'); 2340 } else { 2341 console.error('favorite failed with error:' + err); 2342 } 2343 }); 2344} 2345``` 2346 2347### favorite 2348 2349favorite(isFavorite: boolean): Promise<void> 2350 2351将文件设置为收藏文件,使用promise方式返回异步结果。 2352 2353**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 2354 2355**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2356 2357**参数:** 2358 2359| 参数名 | 类型 | 必填 | 说明 | 2360| ---------- | ------- | ---- | ---------------------------------- | 2361| isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 | 2362 2363**返回值:** 2364 2365| 类型 | 说明 | 2366| ------------------- | ---------- | 2367| Promise<void> | Promise对象,返回void。 | 2368 2369**示例:** 2370 2371```ts 2372import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2373import { BusinessError } from '@ohos.base'; 2374 2375async function example() { 2376 console.info('favoriteDemo'); 2377 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2378 let fetchOption: userFileManager.FetchOptions = { 2379 fetchColumns: [], 2380 predicates: predicates 2381 }; 2382 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2383 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2384 asset.favorite(true).then(() => { 2385 console.info('favorite successfully'); 2386 }).catch((err: BusinessError) => { 2387 console.error('favorite failed with error:' + err); 2388 }); 2389} 2390``` 2391 2392### setHidden<sup>10+</sup> 2393 2394setHidden(hiddenState: boolean, callback: AsyncCallback<void>): void 2395 2396将文件设置为隐私文件,使用callback方式返回异步结果。 2397 2398隐私文件存在隐私相册中,对三方应用不开放,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。 2399 2400**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2401 2402**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2403 2404**参数:** 2405 2406| 参数名 | 类型 | 必填 | 说明 | 2407| ---------- | ------------------------- | ---- | ---------------------------------- | 2408| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 2409| callback | AsyncCallback<void> | 是 | callback返回void。 | 2410 2411**错误码:** 2412 2413接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)和[通用错误码](../errorcodes/errorcode-universal.md)。 2414 2415| 错误码ID | 错误信息 | 2416| -------- | ---------------------------------------- | 2417| 202 | Called by non-system application. | 2418| 13900020 | if parameter is invalid. | 2419 2420**示例:** 2421 2422```ts 2423import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2424 2425async function example() { 2426 console.info('setHiddenDemo'); 2427 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2428 let fetchOption: userFileManager.FetchOptions = { 2429 fetchColumns: [], 2430 predicates: predicates 2431 }; 2432 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2433 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2434 asset.setHidden(true, (err) => { 2435 if (err == undefined) { 2436 console.info('setHidden successfully'); 2437 } else { 2438 console.error('setHidden failed with error:' + err); 2439 } 2440 }); 2441} 2442``` 2443 2444### setHidden<sup>10+</sup> 2445 2446setHidden(hiddenState: boolean): Promise<void> 2447 2448将文件设置为隐私文件,使用promise方式返回异步结果。 2449 2450隐私文件存在隐私相册中,对三方应用不开放,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。 2451 2452**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2453 2454**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2455 2456**参数:** 2457 2458| 参数名 | 类型 | 必填 | 说明 | 2459| ---------- | ------- | ---- | ---------------------------------- | 2460| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 2461 2462**返回值:** 2463 2464| 类型 | 说明 | 2465| ------------------- | ---------- | 2466| Promise<void> | Promise对象,返回void。 | 2467 2468**错误码:** 2469 2470接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)和[通用错误码](../errorcodes/errorcode-universal.md)。 2471 2472| 错误码ID | 错误信息 | 2473| -------- | ---------------------------------------- | 2474| 202 | Called by non-system application. | 2475| 13900020 | if parameter is invalid. | 2476 2477**示例:** 2478 2479```ts 2480import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2481import { BusinessError } from '@ohos.base'; 2482 2483async function example() { 2484 // 示例代码为将文件从隐藏相册中恢复,需要先在隐藏相册预置资源 2485 console.info('setHiddenDemo'); 2486 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2487 let fetchOption: userFileManager.FetchOptions = { 2488 fetchColumns: [], 2489 predicates: predicates 2490 }; 2491 let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.HIDDEN); 2492 const album: userFileManager.Album = await albumList.getFirstObject(); 2493 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 2494 const asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2495 asset.setHidden(false).then(() => { 2496 console.info('setHidden successfully'); 2497 }).catch((err: BusinessError) => { 2498 console.error('setHidden failed with error:' + err); 2499 }); 2500} 2501``` 2502 2503### getExif<sup>10+</sup> 2504 2505getExif(): Promise<string> 2506 2507返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。 2508 2509**注意**:此接口返回的是exif标签组成的json格式的字符串,完整exif信息由all_exif与ImageVideoKey.USER_COMMENT组成,fetchColumns需要传入这两个字段。 2510 2511**系统接口**:此接口为系统接口。 2512 2513**需要权限**:ohos.permission.READ_IMAGEVIDEO 2514 2515**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2516 2517**返回值:** 2518 2519| 类型 | 说明 | 2520| --------------------------------------- | ----------------- | 2521| Promise<string> | 返回exif标签组成的json格式的字符串。 | 2522 2523**支持Exif标签列表**: 2524 2525Exif标签的详细信息请参考[image.PropertyKey](js-apis-image.md#propertykey7)。 2526 2527| 标签key值 | 标签说明 | 2528| --------------------------------------- | ----------------- | 2529| BitsPerSample | 每个像素比特数 | 2530| Orientation | 图像方向 | 2531| ImageLength | 图像长度 | 2532| ImageWidth | 图像宽度 | 2533| GPSLatitude | GPS纬度 | 2534| GPSLongitude | GPS经度 | 2535| GPSLatitudeRef | 经度引用,例如W或E | 2536| GPSLongitudeRef | 纬度引用,例如N或S | 2537| DateTimeOriginal | 拍摄时间 | 2538| ExposureTime | 曝光时间 | 2539| SceneType | 场景类型 | 2540| ISOSpeedRatings | ISO感光度分值 | 2541| FNumber | 光圈F值 | 2542| DateTime | 修改时间 | 2543| GPSTimeStamp | GPS时间戳 | 2544| GPSDateStamp | GPS日期戳 | 2545| ImageDescription | 图像描述 | 2546| Make | 制造商 | 2547| MakeNote | 制造商 | 2548| Model | 型号 | 2549| PhotoMode | 拍摄模式 | 2550| SensitivityType | 感光类型 | 2551| StandardOutputSensitivity | 标准输出感光度 | 2552| RecommendedExposureIndex | 推荐曝光指数 | 2553| ApertureValue | 光圈 | 2554| MeteringMode | 测光模式 | 2555| LightSource | 光源 | 2556| Flash | 闪光灯 | 2557| FocalLength | 镜头焦距 | 2558| UserComment | 用户注释 | 2559| PixelXDimension | 有效图像宽度 | 2560| PixelYDimension | 有效图像高度 | 2561| WhiteBalance | 白平衡 | 2562| FocalLengthIn35mmFilm | 35mm等效焦距 | 2563| ExposureBiasValue | 曝光补偿 | 2564 2565**示例:** 2566 2567```ts 2568import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2569 2570async function example() { 2571 try { 2572 console.info('getExifDemo'); 2573 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2574 predicates.isNotNull('all_exif') 2575 let fetchOptions: userFileManager.FetchOptions = { 2576 fetchColumns: ['all_exif', userFileManager.ImageVideoKey.USER_COMMENT.toString()], 2577 predicates: predicates 2578 }; 2579 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 2580 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2581 console.info('getExifDemo fileAsset displayName: ' + JSON.stringify(fileAsset.displayName)); 2582 let exifMessage: string = await fileAsset.getExif(); 2583 let userCommentKey: string = 'UserComment'; 2584 let userComment: string = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]); 2585 console.info('getExifDemo userComment: ' + JSON.stringify(userComment)); 2586 fetchResult.close(); 2587 } catch (err) { 2588 console.error('getExifDemoCallback failed with error: ' + err); 2589 } 2590} 2591``` 2592 2593### getExif<sup>10+</sup> 2594 2595getExif(callback: AsyncCallback<string>): void 2596 2597返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。 2598 2599**注意**:此接口返回的是exif标签组成的json格式的字符串,完整exif信息由all_exif与ImageVideoKey.USER_COMMENT组成,fetchColumns需要传入这两个字段。 2600 2601**系统接口**:此接口为系统接口。 2602 2603**需要权限**:ohos.permission.READ_IMAGEVIDEO 2604 2605**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2606 2607**参数:** 2608 2609| 参数名 | 类型 | 必填 | 说明 | 2610| -------- | ------------------------- | ---- | ---------- | 2611| callback | AsyncCallback<string> | 是 | 返回exif标签组成的json格式的字符串。 | 2612 2613**支持Exif标签列表**: 2614 2615Exif标签的详细信息请参考[image.PropertyKey](js-apis-image.md#propertykey7)。 2616 2617| 标签key值 | 标签说明 | 2618| --------------------------------------- | ----------------- | 2619| BitsPerSample | 每个像素比特数 | 2620| Orientation | 图像方向 | 2621| ImageLength | 图像长度 | 2622| ImageWidth | 图像宽度 | 2623| GPSLatitude | GPS纬度 | 2624| GPSLongitude | GPS经度 | 2625| GPSLatitudeRef | 经度引用,例如W或E | 2626| GPSLongitudeRef | 纬度引用,例如N或S | 2627| DateTimeOriginal | 拍摄时间 | 2628| ExposureTime | 曝光时间 | 2629| SceneType | 场景类型 | 2630| ISOSpeedRatings | ISO感光度分值 | 2631| FNumber | 光圈F值 | 2632| DateTime | 修改时间 | 2633| GPSTimeStamp | GPS时间戳 | 2634| GPSDateStamp | GPS日期戳 | 2635| ImageDescription | 图像描述 | 2636| Make | 制造商 | 2637| MakeNote | 制造商 | 2638| Model | 型号 | 2639| PhotoMode | 拍摄模式 | 2640| SensitivityType | 感光类型 | 2641| StandardOutputSensitivity | 标准输出感光度 | 2642| RecommendedExposureIndex | 推荐曝光指数 | 2643| ApertureValue | 光圈 | 2644| MeteringMode | 测光模式 | 2645| LightSource | 光源 | 2646| Flash | 闪光灯 | 2647| FocalLength | 镜头焦距 | 2648| UserComment | 用户注释 | 2649| PixelXDimension | 有效图像宽度 | 2650| PixelYDimension | 有效图像高度 | 2651| WhiteBalance | 白平衡 | 2652| FocalLengthIn35mmFilm | 35mm等效焦距 | 2653| ExposureBiasValue | 曝光补偿 | 2654 2655**示例:** 2656 2657```ts 2658import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2659 2660async function example() { 2661 try { 2662 console.info('getExifDemo'); 2663 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2664 predicates.isNotNull('all_exif') 2665 let fetchOptions: userFileManager.FetchOptions = { 2666 fetchColumns: ['all_exif', userFileManager.ImageVideoKey.USER_COMMENT.toString()], 2667 predicates: predicates 2668 }; 2669 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 2670 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2671 console.info('getExifDemo fileAsset displayName: ' + JSON.stringify(fileAsset.displayName)); 2672 let userCommentKey: string = 'UserComment'; 2673 fileAsset.getExif((err, exifMessage) => { 2674 if (exifMessage != undefined) { 2675 let userComment: string = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]); 2676 console.info('getExifDemo userComment: ' + JSON.stringify(userComment)); 2677 } else { 2678 console.error('getExif failed, message = ', err); 2679 } 2680 }); 2681 fetchResult.close(); 2682 } catch (err) { 2683 console.error('getExifDemoCallback failed with error: ' + err); 2684 } 2685} 2686``` 2687 2688### setUserComment<sup>10+</sup> 2689 2690setUserComment(userComment: string): Promise<void> 2691 2692修改图片或者视频的备注信息,该方法使用Promise来返回结果。 2693 2694**注意**:此接口只可修改图片或者视频的备注信息。 2695 2696**系统接口**:此接口为系统接口。 2697 2698**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2699 2700**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2701 2702**参数:** 2703 2704| 参数名 | 类型 | 必填 | 说明 | 2705| -------- | ------------------------- | ---- | ---------- | 2706| userComment | string | 是 | 待修改的图片或视频的备注信息,备注信息最长为140字符。 | 2707 2708**返回值:** 2709 2710| 类型 | 说明 | 2711| --------------------------------------- | ----------------- | 2712|Promise<void> | Promise对象,返回void。 | 2713 2714**示例:** 2715 2716```ts 2717import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2718 2719async function example() { 2720 try { 2721 console.info('setUserCommentDemo') 2722 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2723 let fetchOptions: userFileManager.FetchOptions = { 2724 fetchColumns: [], 2725 predicates: predicates 2726 }; 2727 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 2728 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2729 let userComment: string = 'test_set_user_comment'; 2730 await fileAsset.setUserComment(userComment); 2731 } catch (err) { 2732 console.error('setUserCommentDemoCallback failed with error: ' + err); 2733 } 2734} 2735``` 2736 2737### setUserComment<sup>10+</sup> 2738 2739setUserComment(userComment: string, callback: AsyncCallback<void>): void 2740 2741修改图片或者视频的备注信息,该方法使用callback形式来返回结果。 2742 2743**注意**:此接口只可修改图片或者视频的备注信息。 2744 2745**系统接口**:此接口为系统接口。 2746 2747**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2748 2749**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2750 2751**参数:** 2752 2753| 参数名 | 类型 | 必填 | 说明 | 2754| -------- | ------------------------- | ---- | ---------- | 2755| userComment | string | 是 | 待修改的图片或视频的备注信息,备注信息最长为140字符。 | 2756| callback | AsyncCallback<void> | 是 | callback返回void。 | 2757 2758**示例:** 2759 2760```ts 2761import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2762 2763async function example() { 2764 try { 2765 console.info('setUserCommentDemo') 2766 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2767 let fetchOptions: userFileManager.FetchOptions = { 2768 fetchColumns: [], 2769 predicates: predicates 2770 }; 2771 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions); 2772 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2773 let userComment: string = 'test_set_user_comment'; 2774 fileAsset.setUserComment(userComment, (err) => { 2775 if (err === undefined) { 2776 console.info('setUserComment successfully'); 2777 } else { 2778 console.error('setUserComment failed with error: ' + err); 2779 } 2780 }); 2781 } catch (err) { 2782 console.error('setUserCommentDemoCallback failed with error: ' + err); 2783 } 2784} 2785``` 2786 2787## FetchResult 2788 2789文件检索结果集。 2790 2791### getCount 2792 2793getCount(): number 2794 2795获取文件检索结果中的文件总数。 2796 2797**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2798 2799**返回值:** 2800 2801| 类型 | 说明 | 2802| ------ | -------- | 2803| number | 检索到的文件总数。 | 2804 2805**示例:** 2806 2807```ts 2808import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2809 2810async function example() { 2811 console.info('getCountDemo'); 2812 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2813 let fetchOption: userFileManager.FetchOptions = { 2814 fetchColumns: [], 2815 predicates: predicates 2816 }; 2817 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2818 const fetchCount: number = fetchResult.getCount(); 2819 console.info('fetchCount = ', fetchCount); 2820} 2821``` 2822 2823### isAfterLast 2824 2825isAfterLast(): boolean 2826 2827检查结果集是否指向最后一行。 2828 2829**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2830 2831**返回值:** 2832 2833| 类型 | 说明 | 2834| ------- | ---------------------------------- | 2835| boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 | 2836 2837**示例:** 2838 2839```ts 2840import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2841 2842async function example() { 2843 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2844 let fetchOption: userFileManager.FetchOptions = { 2845 fetchColumns: [], 2846 predicates: predicates 2847 }; 2848 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2849 const fetchCount: number = fetchResult.getCount(); 2850 console.info('count:' + fetchCount); 2851 let fileAsset: userFileManager.FileAsset = await fetchResult.getLastObject(); 2852 if (fetchResult.isAfterLast()) { 2853 console.info('fileAsset isAfterLast displayName = ', fileAsset.displayName); 2854 } else { 2855 console.info('fileAsset not isAfterLast '); 2856 } 2857} 2858``` 2859 2860### close 2861 2862close(): void 2863 2864释放 FetchFileResult 实例并使其失效。无法调用其他方法。 2865 2866**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2867 2868**示例:** 2869 2870```ts 2871import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2872 2873async function example() { 2874 console.info('fetchResultCloseDemo'); 2875 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2876 let fetchOption: userFileManager.FetchOptions = { 2877 fetchColumns: [], 2878 predicates: predicates 2879 }; 2880 try { 2881 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2882 fetchResult.close(); 2883 console.info('close succeed.'); 2884 } catch (err) { 2885 console.error('close fail. message = ' + err); 2886 } 2887} 2888``` 2889 2890### getFirstObject 2891 2892getFirstObject(callback: AsyncCallback<T>): void 2893 2894获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。 2895 2896**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2897 2898**参数:** 2899 2900| 参数名 | 类型 | 必填 | 说明 | 2901| -------- | --------------------------------------------- | ---- | ------------------------------------------- | 2902| callback | AsyncCallback<T> | 是 | 异步获取结果集中的第一个完成后的回调。 | 2903 2904**示例:** 2905 2906```ts 2907import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2908 2909async function example() { 2910 console.info('getFirstObjectDemo'); 2911 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2912 let fetchOption: userFileManager.FetchOptions = { 2913 fetchColumns: [], 2914 predicates: predicates 2915 }; 2916 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2917 fetchResult.getFirstObject((err, fileAsset) => { 2918 if (fileAsset != undefined) { 2919 console.info('fileAsset displayName: ', fileAsset.displayName); 2920 } else { 2921 console.error('fileAsset failed with err:' + err); 2922 } 2923 }); 2924} 2925``` 2926 2927### getFirstObject 2928 2929getFirstObject(): Promise<T> 2930 2931获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。 2932 2933**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2934 2935**返回值:** 2936 2937| 类型 | 说明 | 2938| --------------------------------------- | -------------------------- | 2939| Promise<T> | Promise对象,返回结果集中第一个对象。 | 2940 2941**示例:** 2942 2943```ts 2944import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2945 2946async function example() { 2947 console.info('getFirstObjectDemo'); 2948 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2949 let fetchOption: userFileManager.FetchOptions = { 2950 fetchColumns: [], 2951 predicates: predicates 2952 }; 2953 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 2954 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 2955 console.info('fileAsset displayName: ', fileAsset.displayName); 2956} 2957``` 2958 2959### getNextObject 2960 2961 getNextObject(callback: AsyncCallback<T>): void 2962 2963获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。 2964 2965**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 2966 2967**参数:** 2968 2969| 参数名 | 类型 | 必填 | 说明 | 2970| --------- | --------------------------------------------- | ---- | ----------------------------------------- | 2971| callbacke | 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 3001 getNextObject(): Promise<T> 3002 3003获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。 3004 3005**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3006 3007**返回值:** 3008 3009| 类型 | 说明 | 3010| --------------------------------------- | ----------------- | 3011| Promise<T> | Promise对象,返回结果集中下一个对象。 | 3012 3013**示例:** 3014 3015```ts 3016import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3017 3018async function example() { 3019 console.info('getNextObjectDemo'); 3020 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3021 let fetchOption: userFileManager.FetchOptions = { 3022 fetchColumns: [], 3023 predicates: predicates 3024 }; 3025 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3026 await fetchResult.getFirstObject(); 3027 if (!fetchResult.isAfterLast()) { 3028 let fileAsset: userFileManager.FileAsset = await fetchResult.getNextObject(); 3029 console.info('fileAsset displayName: ', fileAsset.displayName); 3030 } 3031} 3032``` 3033 3034### getLastObject 3035 3036getLastObject(callback: AsyncCallback<T>): void 3037 3038获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。 3039 3040**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3041 3042**参数:** 3043 3044| 参数名 | 类型 | 必填 | 说明 | 3045| -------- | --------------------------------------------- | ---- | --------------------------- | 3046| callback | AsyncCallback<T> | 是 | 异步返回结果集中最后一个的回调。 | 3047 3048**示例:** 3049 3050```ts 3051import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3052 3053async function example() { 3054 console.info('getLastObjectDemo'); 3055 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3056 let fetchOption: userFileManager.FetchOptions = { 3057 fetchColumns: [], 3058 predicates: predicates 3059 }; 3060 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3061 fetchResult.getLastObject((err, fileAsset) => { 3062 if (fileAsset != undefined) { 3063 console.info('fileAsset displayName: ', fileAsset.displayName); 3064 } else { 3065 console.error('fileAsset failed with err: ' + err); 3066 } 3067 }); 3068} 3069``` 3070 3071### getLastObject 3072 3073getLastObject(): Promise<T> 3074 3075获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。 3076 3077**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3078 3079**返回值:** 3080 3081| 类型 | 说明 | 3082| --------------------------------------- | ----------------- | 3083| Promise<T> | Promise对象,返回结果集中最后一个对象。 | 3084 3085**示例:** 3086 3087```ts 3088import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3089 3090async function example() { 3091 console.info('getLastObjectDemo'); 3092 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3093 let fetchOption: userFileManager.FetchOptions = { 3094 fetchColumns: [], 3095 predicates: predicates 3096 }; 3097 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3098 let fileAsset: userFileManager.FileAsset = await fetchResult.getLastObject(); 3099 console.info('fileAsset displayName: ', fileAsset.displayName); 3100} 3101``` 3102 3103### getPositionObject 3104 3105getPositionObject(index: number, callback: AsyncCallback<T>): void 3106 3107获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。 3108 3109**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3110 3111**参数:** 3112 3113| 参数名 | 类型 | 必填 | 说明 | 3114| -------- | ---------------------------------------- | ---- | ------------------ | 3115| index | number | 是 | 要获取的文件的索引,从0开始。 | 3116| callback | AsyncCallback<T> | 是 | 异步返回指定索引的文件资产的回调。 | 3117 3118**错误码:** 3119 3120接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3121 3122| 错误码ID | 错误信息 | 3123| -------- | ---------------------------------------- | 3124| 13900020 | if type index is not number. | 3125 3126**示例:** 3127 3128```ts 3129import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3130 3131async function example() { 3132 console.info('getPositionObjectDemo'); 3133 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3134 let fetchOption: userFileManager.FetchOptions = { 3135 fetchColumns: [], 3136 predicates: predicates 3137 }; 3138 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3139 fetchResult.getPositionObject(0, (err, fileAsset) => { 3140 if (fileAsset != undefined) { 3141 console.info('fileAsset displayName: ', fileAsset.displayName); 3142 } else { 3143 console.error('fileAsset failed with err: ' + err); 3144 } 3145 }); 3146} 3147``` 3148 3149### getPositionObject 3150 3151getPositionObject(index: number): Promise<T> 3152 3153获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。 3154 3155**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3156 3157**参数:** 3158 3159| 参数名 | 类型 | 必填 | 说明 | 3160| ----- | ------ | ---- | -------------- | 3161| index | number | 是 | 要获取的文件的索引,从0开始。 | 3162 3163**返回值:** 3164 3165| 类型 | 说明 | 3166| --------------------------------------- | ----------------- | 3167| Promise<T> | Promise对象,返回结果集中指定索引的一个对象。 | 3168 3169**错误码:** 3170 3171接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3172 3173| 错误码ID | 错误信息 | 3174| -------- | ---------------------------------------- | 3175| 13900020 | if type index is not number. | 3176 3177**示例:** 3178 3179```ts 3180import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3181 3182async function example() { 3183 console.info('getPositionObjectDemo'); 3184 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3185 let fetchOption: userFileManager.FetchOptions = { 3186 fetchColumns: [], 3187 predicates: predicates 3188 }; 3189 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3190 let fileAsset: userFileManager.FileAsset = await fetchResult.getPositionObject(0); 3191 console.info('fileAsset displayName: ', fileAsset.displayName); 3192} 3193``` 3194 3195### getAllObject<sup>10+</sup> 3196 3197getAllObject(callback: AsyncCallback<Array<T>>): void 3198 3199获取文件检索结果中的所有文件资产。此方法使用callback形式返回结果。 3200 3201**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3202 3203**参数:** 3204 3205| 参数名 | 类型 | 必填 | 说明 | 3206| -------- | --------------------------------------------- | ---- | ------------------------------------------- | 3207| callback | AsyncCallback<Array<T>> | 是 | 异步获取结果集中的所有文件资产完成后的回调。 | 3208 3209**示例:** 3210 3211```ts 3212import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3213 3214async function example() { 3215 console.info('getAllObjectDemo'); 3216 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3217 let fetchOption: userFileManager.FetchOptions = { 3218 fetchColumns: [], 3219 predicates: predicates 3220 }; 3221 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3222 fetchResult.getAllObject((err, fileAssetList) => { 3223 if (fileAssetList != undefined) { 3224 console.info('fileAssetList length: ', fileAssetList.length); 3225 } else { 3226 console.error('fileAssetList failed with err:' + err); 3227 } 3228 }); 3229} 3230``` 3231 3232### getAllObject<sup>10+</sup> 3233 3234getAllObject(): Promise<Array<T>> 3235 3236获取文件检索结果中的所有文件资产。此方法使用promise方式来异步返回。 3237 3238**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3239 3240**返回值:** 3241 3242| 类型 | 说明 | 3243| --------------------------------------- | -------------------------- | 3244| Promise<Array<T>> | Promise对象,返回结果集中所有文件资产数组。 | 3245 3246**示例:** 3247 3248```ts 3249import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3250 3251async function example() { 3252 console.info('getAllObjectDemo'); 3253 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3254 let fetchOption: userFileManager.FetchOptions = { 3255 fetchColumns: [], 3256 predicates: predicates 3257 }; 3258 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3259 let fileAssetList: Array<userFileManager.FileAsset> = await fetchResult.getAllObject(); 3260 console.info('fileAssetList length: ', fileAssetList.length); 3261} 3262``` 3263 3264## Album 3265 3266实体相册 3267 3268### 属性 3269 3270**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3271 3272| 名称 | 类型 | 可读 | 可写 | 说明 | 3273| ------------ | ------ | ---- | ---- | ------- | 3274| albumType<sup>10+</sup> | [AlbumType]( #albumtype10) | 是 | 否 | 相册类型。 | 3275| albumSubType<sup>10+</sup> | [AlbumSubType]( #albumsubtype10) | 是 | 否 | 相册子类型。 | 3276| albumName | string | 是 | 用户相册可写,预置相册不可写 | 相册名称。 | 3277| albumUri | string | 是 | 否 | 相册Uri。 | 3278| count | number | 是 | 否 | 相册中文件数量。 | 3279| coverUri | string | 是 | 用户相册可写,预置相册不可写 | 封面文件Uri。 | 3280 3281### getPhotoAssets 3282 3283getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void; 3284 3285获取相册中的文件。该方法使用callback形式来返回文件。 3286 3287**需要权限**:ohos.permission.READ_IMAGEVIDEO 3288 3289**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3290 3291**参数:** 3292 3293| 参数名 | 类型 | 必填 | 说明 | 3294| -------- | ------------------------- | ---- | ---------- | 3295| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 3296| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback返回图片和视频数据结果集。 | 3297 3298**错误码:** 3299 3300接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3301 3302| 错误码ID | 错误信息 | 3303| -------- | ---------------------------------------- | 3304| 13900020 | if type options is not FetchOptions. | 3305 3306**示例:** 3307 3308```ts 3309import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3310 3311async function example() { 3312 console.info('albumGetFileAssetsDemoCallback'); 3313 3314 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3315 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 3316 predicates: predicates 3317 }; 3318 let fetchOption: userFileManager.FetchOptions = { 3319 fetchColumns: [], 3320 predicates: predicates 3321 }; 3322 let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 3323 let album: userFileManager.Album = await albumList.getFirstObject(); 3324 album.getPhotoAssets(fetchOption, (err, albumFetchResult) => { 3325 if (albumFetchResult != undefined) { 3326 console.info('album getPhotoAssets successfully, getCount: ' + albumFetchResult.getCount()); 3327 } else { 3328 console.error('album getPhotoAssets failed with error: ' + err); 3329 } 3330 }); 3331} 3332``` 3333 3334### getPhotoAssets 3335 3336getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>; 3337 3338获取相册中的文件。该方法使用Promise来返回文件。 3339 3340**需要权限**:ohos.permission.READ_IMAGEVIDEO 3341 3342**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3343 3344**参数:** 3345 3346| 参数名 | 类型 | 必填 | 说明 | 3347| -------- | ------------------------- | ---- | ---------- | 3348| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 3349 3350**返回值:** 3351 3352| 类型 | 说明 | 3353| --------------------------------------- | ----------------- | 3354| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise对象,返回图片和视频数据结果集。 | 3355 3356**错误码:** 3357 3358接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3359 3360| 错误码ID | 错误信息 | 3361| -------- | ---------------------------------------- | 3362| 13900020 | if type options is not FetchOptions. | 3363 3364**示例:** 3365 3366```ts 3367import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3368import { BusinessError } from '@ohos.base'; 3369 3370async function example() { 3371 console.info('albumGetFileAssetsDemoPromise'); 3372 3373 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3374 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 3375 predicates: predicates 3376 }; 3377 let fetchOption: userFileManager.FetchOptions = { 3378 fetchColumns: [], 3379 predicates: predicates 3380 }; 3381 const albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 3382 const album: userFileManager.Album = await albumList.getFirstObject(); 3383 album.getPhotoAssets(fetchOption).then((albumFetchResult) => { 3384 console.info('album getFileAssets successfully, getCount: ' + albumFetchResult.getCount()); 3385 }).catch((err: BusinessError) => { 3386 console.error('album getFileAssets failed with error: ' + err); 3387 }); 3388} 3389``` 3390 3391### commitModify 3392 3393commitModify(callback: AsyncCallback<void>): void; 3394 3395更新相册属性修改到数据库中。该方法使用callback形式来返回结果。 3396 3397**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3398 3399**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3400 3401**参数:** 3402 3403| 参数名 | 类型 | 必填 | 说明 | 3404| -------- | ------------------------- | ---- | ---------- | 3405| callback | AsyncCallback<void> | 是 | callback返回void。 | 3406 3407**示例:** 3408 3409```ts 3410import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3411 3412async function example() { 3413 console.info('albumCommitModifyDemo'); 3414 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3415 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 3416 predicates: predicates 3417 }; 3418 const albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 3419 const album: userFileManager.Album = await albumList.getFirstObject(); 3420 album.albumName = 'hello'; 3421 album.commitModify((err) => { 3422 if (err != undefined) { 3423 console.error('commitModify failed with error: ' + err); 3424 } else { 3425 console.info('commitModify successfully'); 3426 } 3427 }); 3428} 3429``` 3430 3431### commitModify 3432 3433commitModify(): Promise<void>; 3434 3435更新相册属性修改到数据库中。该方法使用Promise来返回结果。 3436 3437**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3438 3439**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3440 3441**返回值:** 3442 3443| 类型 | 说明 | 3444| ------------------- | ------------ | 3445| Promise<void> | Promise对象,返回void。 | 3446 3447**示例:** 3448 3449```ts 3450import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3451import { BusinessError } from '@ohos.base'; 3452 3453async function example() { 3454 console.info('albumCommitModifyDemo'); 3455 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3456 let albumFetchOptions: userFileManager.AlbumFetchOptions = { 3457 predicates: predicates 3458 }; 3459 try { 3460 let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions); 3461 let album: userFileManager.Album = await albumList.getFirstObject(); 3462 album.albumName = 'hello'; 3463 album.commitModify().then(() => { 3464 console.info('commitModify successfully'); 3465 }).catch((err: BusinessError) => { 3466 console.error('commitModify failed with error: ' + err); 3467 }); 3468 } catch (err) { 3469 console.error('getPhotoAlbums failed. message = ', err); 3470 } 3471} 3472``` 3473 3474### addPhotoAssets<sup>10+</sup> 3475 3476addPhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void; 3477 3478往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。 3479 3480**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3481 3482**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3483 3484**参数:** 3485 3486| 参数名 | 类型 | 必填 | 说明 | 3487| -------- | ------------------------- | ---- | ---------- | 3488| assets | Array<[FileAsset](#fileasset)> | 是 | 待添加到相册中的图片或视频数组。 | 3489| callback | AsyncCallback<void> | 是 | callback返回void。 | 3490 3491**错误码:** 3492 3493接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3494 3495| 错误码ID | 错误信息 | 3496| -------- | ---------------------------------------- | 3497| 13900020 | if PhotoAssets is invalid. | 3498 3499**示例:** 3500 3501```ts 3502import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3503 3504async function example() { 3505 try { 3506 console.info('addPhotoAssetsDemoCallback'); 3507 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3508 let fetchOption: userFileManager.FetchOptions = { 3509 fetchColumns: [], 3510 predicates: predicates 3511 }; 3512 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC); 3513 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3514 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3515 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3516 album.addPhotoAssets([asset], (err) => { 3517 if (err === undefined) { 3518 console.info('album addPhotoAssets successfully'); 3519 } else { 3520 console.error('album addPhotoAssets failed with error: ' + err); 3521 } 3522 }); 3523 } catch (err) { 3524 console.error('addPhotoAssetsDemoCallback failed with error: ' + err); 3525 } 3526} 3527``` 3528 3529### addPhotoAssets<sup>10+</sup> 3530 3531addPhotoAssets(assets: Array<FileAsset>): Promise<void>; 3532 3533往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。 3534 3535**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3536 3537**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3538 3539**参数:** 3540 3541| 参数名 | 类型 | 必填 | 说明 | 3542| -------- | ------------------------- | ---- | ---------- | 3543| assets | Array<[FileAsset](#fileasset)> | 是 | 待添加到相册中的图片或视频数组。 | 3544 3545**返回值:** 3546 3547| 类型 | 说明 | 3548| --------------------------------------- | ----------------- | 3549|Promise<void> | Promise对象,返回void。 | 3550 3551**错误码:** 3552 3553接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3554 3555| 错误码ID | 错误信息 | 3556| -------- | ---------------------------------------- | 3557| 13900020 | if PhotoAssets is invalid. | 3558 3559**示例:** 3560 3561```ts 3562import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3563import { BusinessError } from '@ohos.base'; 3564 3565async function example() { 3566 try { 3567 console.info('addPhotoAssetsDemoPromise'); 3568 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3569 let fetchOption: userFileManager.FetchOptions = { 3570 fetchColumns: [], 3571 predicates: predicates 3572 }; 3573 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC); 3574 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3575 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption); 3576 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3577 album.addPhotoAssets([asset]).then(() => { 3578 console.info('album addPhotoAssets successfully'); 3579 }).catch((err: BusinessError) => { 3580 console.error('album addPhotoAssets failed with error: ' + err); 3581 }); 3582 } catch (err) { 3583 console.error('addPhotoAssetsDemoPromise failed with error: ' + err); 3584 } 3585} 3586``` 3587 3588### removePhotoAssets<sup>10+</sup> 3589 3590removePhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void; 3591 3592从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。 3593 3594**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3595 3596**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3597 3598**参数:** 3599 3600| 参数名 | 类型 | 必填 | 说明 | 3601| -------- | ------------------------- | ---- | ---------- | 3602| assets | Array<[FileAsset](#fileasset)> | 是 | 相册中待移除的图片或视频数组。 | 3603| callback | AsyncCallback<void> | 是 | callback返回void。 | 3604 3605**错误码:** 3606 3607接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3608 3609| 错误码ID | 错误信息 | 3610| -------- | ---------------------------------------- | 3611| 13900020 | if PhotoAssets is invalid. | 3612 3613**示例:** 3614 3615```ts 3616import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3617 3618async function example() { 3619 try { 3620 console.info('removePhotoAssetsDemoCallback'); 3621 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3622 let fetchOption: userFileManager.FetchOptions = { 3623 fetchColumns: [], 3624 predicates: predicates 3625 }; 3626 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC); 3627 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3628 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3629 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3630 album.removePhotoAssets([asset], (err) => { 3631 if (err === undefined) { 3632 console.info('album removePhotoAssets successfully'); 3633 } else { 3634 console.error('album removePhotoAssets failed with error: ' + err); 3635 } 3636 }); 3637 } catch (err) { 3638 console.error('removePhotoAssetsDemoCallback failed with error: ' + err); 3639 } 3640} 3641``` 3642 3643### removePhotoAssets<sup>10+</sup> 3644 3645removePhotoAssets(assets: Array<FileAsset>): Promise<void>; 3646 3647从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。 3648 3649**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3650 3651**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3652 3653**参数:** 3654 3655| 参数名 | 类型 | 必填 | 说明 | 3656| -------- | ------------------------- | ---- | ---------- | 3657| assets | Array<[FileAsset](#fileasset)> | 是 | 相册中待移除的图片或视频数组。 | 3658 3659**返回值:** 3660 3661| 类型 | 说明 | 3662| --------------------------------------- | ----------------- | 3663|Promise<void> | Promise对象,返回void。 | 3664 3665**错误码:** 3666 3667接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3668 3669| 错误码ID | 错误信息 | 3670| -------- | ---------------------------------------- | 3671| 13900020 | if PhotoAssets is invalid. | 3672 3673**示例:** 3674 3675```ts 3676import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3677import { BusinessError } from '@ohos.base'; 3678 3679async function example() { 3680 try { 3681 console.info('removePhotoAssetsDemoPromise'); 3682 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3683 let fetchOption: userFileManager.FetchOptions = { 3684 fetchColumns: [], 3685 predicates: predicates 3686 }; 3687 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC); 3688 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3689 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3690 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3691 album.removePhotoAssets([asset]).then(() => { 3692 console.info('album removePhotoAssets successfully'); 3693 }).catch((err: BusinessError) => { 3694 console.error('album removePhotoAssets failed with error: ' + err); 3695 }); 3696 } catch (err) { 3697 console.error('removePhotoAssetsDemoPromise failed with error: ' + err); 3698 } 3699} 3700``` 3701 3702### recoverPhotoAssets<sup>10+</sup> 3703 3704recoverPhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void; 3705 3706从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。 3707 3708**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3709 3710**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3711 3712**参数:** 3713 3714| 参数名 | 类型 | 必填 | 说明 | 3715| -------- | ------------------------- | ---- | ---------- | 3716| assets | Array<[FileAsset](#fileasset)> | 是 | 回收站中待恢复图片或者视频数组。 | 3717| callback | AsyncCallback<void> | 是 | callback返回void。 | 3718 3719**错误码:** 3720 3721接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3722 3723| 错误码ID | 错误信息 | 3724| -------- | ---------------------------------------- | 3725| 13900020 | if PhotoAssets is invalid. | 3726 3727**示例:** 3728 3729```ts 3730import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3731 3732async function example() { 3733 try { 3734 console.info('recoverPhotoAssetsDemoCallback'); 3735 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3736 let fetchOption: userFileManager.FetchOptions = { 3737 fetchColumns: [], 3738 predicates: predicates 3739 }; 3740 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH); 3741 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3742 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3743 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3744 album.recoverPhotoAssets([asset], (err) => { 3745 if (err === undefined) { 3746 console.info('album recoverPhotoAssets successfully'); 3747 } else { 3748 console.error('album recoverPhotoAssets failed with error: ' + err); 3749 } 3750 }); 3751 } catch (err) { 3752 console.error('recoverPhotoAssetsDemoCallback failed with error: ' + err); 3753 } 3754} 3755``` 3756 3757### recoverPhotoAssets<sup>10+</sup> 3758 3759recoverPhotoAssets(assets: Array<FileAsset>): Promise<void>; 3760 3761从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。 3762 3763**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3764 3765**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3766 3767**参数:** 3768 3769| 参数名 | 类型 | 必填 | 说明 | 3770| -------- | ------------------------- | ---- | ---------- | 3771| assets | Array<[FileAsset](#fileasset)> | 是 | 回收站中待恢复图片或者视频数组。 | 3772 3773**返回值:** 3774 3775| 类型 | 说明 | 3776| --------------------------------------- | ----------------- | 3777|Promise<void> | Promise对象,返回void。 | 3778 3779**错误码:** 3780 3781接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3782 3783| 错误码ID | 错误信息 | 3784| -------- | ---------------------------------------- | 3785| 13900020 | if PhotoAssets is invalid. | 3786 3787**示例:** 3788 3789```ts 3790import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3791import { BusinessError } from '@ohos.base'; 3792 3793async function example() { 3794 try { 3795 console.info('recoverPhotoAssetsDemoPromise'); 3796 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3797 let fetchOption: userFileManager.FetchOptions = { 3798 fetchColumns: [], 3799 predicates: predicates 3800 }; 3801 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH); 3802 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3803 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3804 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3805 album.recoverPhotoAssets([asset]).then(() => { 3806 console.info('album recoverPhotoAssets successfully'); 3807 }).catch((err: BusinessError) => { 3808 console.error('album recoverPhotoAssets failed with error: ' + err); 3809 }); 3810 } catch (err) { 3811 console.error('recoverPhotoAssetsDemoPromise failed with error: ' + err); 3812 } 3813} 3814``` 3815 3816### deletePhotoAssets<sup>10+</sup> 3817 3818deletePhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void; 3819 3820从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。 3821 3822**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 3823 3824**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3825 3826**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3827 3828**参数:** 3829 3830| 参数名 | 类型 | 必填 | 说明 | 3831| -------- | ------------------------- | ---- | ---------- | 3832| assets | Array<[FileAsset](#fileasset)> | 是 | 回收站中待彻底删除图片或者视频数组。 | 3833| callback | AsyncCallback<void> | 是 | callback返回void。 | 3834 3835**错误码:** 3836 3837接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3838 3839| 错误码ID | 错误信息 | 3840| -------- | ---------------------------------------- | 3841| 13900020 | if PhotoAssets is invalid. | 3842 3843**示例:** 3844 3845```ts 3846import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3847 3848async function example() { 3849 try { 3850 console.info('deletePhotoAssetsDemoCallback'); 3851 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3852 let fetchOption: userFileManager.FetchOptions = { 3853 fetchColumns: [], 3854 predicates: predicates 3855 }; 3856 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH); 3857 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3858 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3859 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3860 album.deletePhotoAssets([asset], (err) => { 3861 if (err === undefined) { 3862 console.info('album deletePhotoAssets successfully'); 3863 } else { 3864 console.error('album deletePhotoAssets failed with error: ' + err); 3865 } 3866 }); 3867 } catch (err) { 3868 console.error('deletePhotoAssetsDemoCallback failed with error: ' + err); 3869 } 3870} 3871``` 3872 3873### deletePhotoAssets<sup>10+</sup> 3874 3875deletePhotoAssets(assets: Array<FileAsset>): Promise<void>; 3876 3877从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。 3878 3879**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 3880 3881**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3882 3883**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3884 3885**参数:** 3886 3887| 参数名 | 类型 | 必填 | 说明 | 3888| -------- | ------------------------- | ---- | ---------- | 3889| assets | Array<[FileAsset](#fileasset)> | 是 | 回收站中待彻底删除图片或者视频数组。 | 3890 3891**返回值:** 3892 3893| 类型 | 说明 | 3894| --------------------------------------- | ----------------- | 3895|Promise<void> | Promise对象,返回void。 | 3896 3897**错误码:** 3898 3899接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3900 3901| 错误码ID | 错误信息 | 3902| -------- | ---------------------------------------- | 3903| 13900020 | if PhotoAssets is invalid. | 3904 3905**示例:** 3906 3907```ts 3908import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3909import { BusinessError } from '@ohos.base'; 3910 3911async function example() { 3912 try { 3913 console.info('deletePhotoAssetsDemoPromise'); 3914 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3915 let fetchOption: userFileManager.FetchOptions = { 3916 fetchColumns: [], 3917 predicates: predicates 3918 }; 3919 let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH); 3920 let album: userFileManager.Album = await albumFetchResult.getFirstObject(); 3921 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption); 3922 let asset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 3923 album.deletePhotoAssets([asset]).then(() => { 3924 console.info('album deletePhotoAssets successfully'); 3925 }).catch((err: BusinessError) => { 3926 console.error('album deletePhotoAssets failed with error: ' + err); 3927 }); 3928 } catch (err) { 3929 console.error('deletePhotoAssetsDemoPromise failed with error: ' + err); 3930 } 3931} 3932``` 3933 3934## PrivateAlbum 3935 3936系统相册。 3937 3938此接口即将废弃,请使用[Album](#album)接口替代。 3939 3940### 属性 3941 3942**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3943 3944| 名称 | 类型 | 可读 | 可写 | 说明 | 3945| ------------ | ------ | ---- | ---- | ------- | 3946| albumName | string | 是 | 是 | 相册名称。 | 3947| albumUri | string | 是 | 否 | 相册Uri。 | 3948| dateModified | number | 是 | 否 | 修改日期。 | 3949| count | number | 是 | 否 | 相册中文件数量。 | 3950| coverUri | string | 是 | 否 | 封面文件Uri。 | 3951 3952### getPhotoAssets 3953 3954getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void; 3955 3956获取系统相册中的文件。该方法使用callback形式来返回文件。 3957 3958此接口即将废弃,请使用[Album.getPhotoAssets](#getphotoassets-2)接口替代。 3959 3960**需要权限**:ohos.permission.READ_IMAGEVIDEO 3961 3962**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 3963 3964**参数:** 3965 3966| 参数名 | 类型 | 必填 | 说明 | 3967| -------- | ------------------------- | ---- | ---------- | 3968| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 3969| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback返回图片和视频数据结果集。 | 3970 3971**错误码:** 3972 3973接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 3974 3975| 错误码ID | 错误信息 | 3976| -------- | ---------------------------------------- | 3977| 13900020 | if type options is not FetchOptions. | 3978 3979**示例:** 3980 3981```ts 3982import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3983 3984async function example() { 3985 console.info('privateAlbumGetFileAssetsDemoCallback'); 3986 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 3987 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3988 let fetchOption: userFileManager.FetchOptions = { 3989 fetchColumns: [], 3990 predicates: predicates 3991 }; 3992 const trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 3993 trashAlbum.getPhotoAssets(fetchOption, (err, fetchResult) => { 3994 if (fetchResult != undefined) { 3995 let count = fetchResult.getCount(); 3996 console.info('fetchResult.count = ', count); 3997 } else { 3998 console.error('getFileAssets failed, message = ', err); 3999 } 4000 }); 4001} 4002 4003``` 4004 4005### getPhotoAssets 4006 4007getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>; 4008 4009获取系统相册中的文件。该方法使用Promise来返回文件。 4010 4011此接口即将废弃,请使用[Album.getPhotoAssets](#getphotoassets-3)接口替代。 4012 4013**需要权限**:ohos.permission.READ_IMAGEVIDEO 4014 4015**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4016 4017**参数:** 4018 4019| 参数名 | 类型 | 必填 | 说明 | 4020| -------- | ------------------------- | ---- | ---------- | 4021| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 4022 4023**返回值:** 4024 4025| 类型 | 说明 | 4026| --------------------------------------- | ----------------- | 4027| Promise:[FetchResult](#fetchresult)<[FileAsset](#fileasset)>| Promise对象,返回图片和视频数据结果集。 | 4028 4029**错误码:** 4030 4031接口抛出错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。 4032 4033| 错误码ID | 错误信息 | 4034| -------- | ---------------------------------------- | 4035| 13900020 | if type options is not FetchOptions. | 4036 4037**示例:** 4038 4039```ts 4040import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4041 4042async function example() { 4043 console.info('privateAlbumGetFileAssetsDemoPromise'); 4044 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4045 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4046 let fetchOption: userFileManager.FetchOptions = { 4047 fetchColumns: [], 4048 predicates: predicates 4049 }; 4050 const trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4051 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4052 let count = fetchResult.getCount(); 4053 console.info('fetchResult.count = ', count); 4054} 4055``` 4056 4057### delete 4058 4059delete(uri: string, callback: AsyncCallback<void>): void; 4060 4061删除系统相册中的文件,仅支持删除回收站相册中文件。 4062 4063此接口即将废弃,请使用[Album.deletePhotoAssets](#deletephotoassets10)接口替代。 4064 4065**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 4066 4067**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4068 4069**参数:** 4070 4071| 参数名 | 类型 | 必填 | 说明 | 4072| -------- | ------------------------- | ---- | ---------- | 4073| uri | string | 是 | 系统相册中文件的uri。 | 4074| callback | AsyncCallback<void> | 是 | callback返回void。 | 4075 4076**示例:** 4077 4078```ts 4079import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4080 4081async function example() { 4082 console.info('privateAlbumDeleteCallback'); 4083 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4084 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4085 let fetchOption: userFileManager.FetchOptions = { 4086 fetchColumns: [], 4087 predicates: predicates 4088 }; 4089 let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4090 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4091 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 4092 let deleteFileUri = fileAsset.uri; 4093 trashAlbum.delete(deleteFileUri, (err) => { 4094 if (err != undefined) { 4095 console.error('trashAlbum.delete failed, message = ', err); 4096 } else { 4097 console.info('trashAlbum.delete successfully'); 4098 } 4099 }); 4100} 4101``` 4102 4103### delete 4104 4105delete(uri: string): Promise<void>; 4106 4107删除系统相册中的文件,仅支持删除回收站相册中文件。 4108 4109此接口即将废弃,请使用[Album.deletePhotoAssets](#deletephotoassets10)接口替代。 4110 4111**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 4112 4113**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4114 4115**参数:** 4116 4117| 参数名 | 类型 | 必填 | 说明 | 4118| -------- | ------------------------- | ---- | ---------- | 4119| uri | string | 是 | 系统相册中文件的uri。 | 4120 4121**返回值:** 4122 4123| 类型 | 说明 | 4124| --------------------------------------- | ----------------- | 4125| Promise<void>| Promise对象,返回void。 | 4126 4127**示例:** 4128 4129```ts 4130import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4131import { BusinessError } from '@ohos.base'; 4132 4133async function example() { 4134 console.info('privateAlbumDeleteDemoPromise'); 4135 let albumListlet albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum>let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4136 let fetchOption: userFileManager.FetchOptions = { 4137 fetchColumns: [], 4138 predicates: predicates 4139 }; 4140 let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4141 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4142 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 4143 let deleteFileUri = fileAsset.uri; 4144 trashAlbum.delete(deleteFileUri).then(() => { 4145 console.info('trashAlbum.delete successfully'); 4146 }).catch((err: BusinessError) => { 4147 console.error('trashAlbum.delete failed, message = ', err); 4148 }); 4149} 4150``` 4151 4152### recover 4153 4154recover(uri: string, callback: AsyncCallback<void>): void; 4155 4156恢复系统相册中的文件,仅支持恢复回收站相册中文件。 4157 4158此接口即将废弃,请使用[Album.recoverPhotoAssets](#recoverphotoassets10)接口替代。 4159 4160**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 4161 4162**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4163 4164**参数:** 4165 4166| 参数名 | 类型 | 必填 | 说明 | 4167| -------- | ------------------------- | ---- | ---------- | 4168| uri | string | 是 | 系统相册中文件的uri。 | 4169| callback | AsyncCallback<void> | 是 | callback返回void。 | 4170 4171**示例:** 4172 4173```ts 4174import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4175 4176async function example() { 4177 console.info('privateAlbumRecoverDemoCallback'); 4178 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4179 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4180 let fetchOption: userFileManager.FetchOptions = { 4181 fetchColumns: [], 4182 predicates: predicates 4183 }; 4184 let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4185 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4186 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 4187 let recoverFileUri: string = fileAsset.uri; 4188 trashAlbum.recover(recoverFileUri, (err) => { 4189 if (err != undefined) { 4190 console.error('trashAlbum.recover failed, message = ', err); 4191 } else { 4192 console.info('trashAlbum.recover successfully'); 4193 } 4194 }); 4195} 4196``` 4197 4198### recover 4199 4200recover(uri: string): Promise<void>; 4201 4202恢复系统相册中的文件,仅支持恢复回收站相册中文件。 4203 4204此接口即将废弃,请使用[Album.recoverPhotoAssets](#recoverphotoassets10)接口替代。 4205 4206**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO 4207 4208**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4209 4210**参数:** 4211 4212| 参数名 | 类型 | 必填 | 说明 | 4213| -------- | ------------------------- | ---- | ---------- | 4214| uri | string | 是 | 系统相册中文件的uri。 | 4215 4216**返回值:** 4217 4218| 类型 | 说明 | 4219| --------------------------------------- | ----------------- | 4220| Promise<void>| Promise对象,返回void。 | 4221 4222**示例:** 4223 4224```ts 4225import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4226import { BusinessError } from '@ohos.base'; 4227 4228async function example() { 4229 console.info('privateAlbumRecoverDemoPromise'); 4230 let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); 4231 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4232 let fetchOption: userFileManager.FetchOptions = { 4233 fetchColumns: [], 4234 predicates: predicates 4235 }; 4236 let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject(); 4237 let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption); 4238 let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject(); 4239 let recoverFileUri: string = fileAsset.uri; 4240 trashAlbum.recover(recoverFileUri).then(() => { 4241 console.info('trashAlbum.recover successfully'); 4242 }).catch((err: BusinessError) => { 4243 console.error('trashAlbum.recover failed, message = ', err); 4244 }); 4245} 4246``` 4247 4248## MemberType 4249 4250成员类型。 4251 4252**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4253 4254| 名称 | 类型 | 可读 | 可写 | 说明 | 4255| ----- | ---- | ---- | ---- | ---- | 4256| number | number | 是 | 是 | number类型。 | 4257| string | string | 是 | 是 | string类型。| 4258| boolean | boolean | 是 | 是 | boolean类型。 | 4259 4260## ChangeEvent 4261 4262变更监听的媒体文件类型。 4263 4264**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4265 4266| 名称 | 类型 | 可读 | 可写 | 说明 | 4267| ----- | ---- | ---- | ---- | ---- | 4268| deviceChange | string | 是 | 是 | 设备。 | 4269| albumChange | string | 是 | 是 | 相册。 | 4270| imageChange | string | 是 | 是 | 图片。 | 4271| audioChange | string | 是 | 是 | 音频。 | 4272| videoChange | string | 是 | 是 | 视频。 | 4273| remoteFileChange | string | 是 | 是 | 远程文件。 | 4274 4275## PeerInfo 4276 4277注册设备的信息。 4278 4279**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore 4280 4281| 名称 | 类型 | 可读 | 可写 | 说明 | 4282| ---------- | -------------------------- | ---- | ---- | ---------------- | 4283| deviceName | string | 是 | 否 | 注册设备的名称。 | 4284| networkId | string | 是 | 否 | 注册设备的网络ID。 | 4285| isOnline | boolean | 是 | 否 | 是否在线。 | 4286 4287## FileType 4288 4289枚举,媒体文件类型。 4290 4291**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4292 4293| 名称 | 值 | 说明 | 4294| ----- | ---- | ---- | 4295| IMAGE | 1 | 图片。 | 4296| VIDEO | 2 | 视频。 | 4297| AUDIO | 3 | 音频。 | 4298 4299## PhotoSubType<sup>10+</sup> 4300 4301枚举,不同[FileAsset](#fileasset)的类型。 4302 4303**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4304 4305| 名称 | 值 | 说明 | 4306| ----- | ---- | ---- | 4307| DEFAULT | 0 | 默认照片类型。 | 4308| SCREENSHOT | 1 | 截屏录屏文件类型。 | 4309| CAMERA | 2 | 相机拍摄的照片和视频类型。 | 4310 4311## PositionType<sup>10+</sup> 4312 4313枚举,文件位置,表示文件在本地或云端。 4314 4315**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4316 4317| 名称 | 值 | 说明 | 4318| ----- | ---- | ---- | 4319| LOCAL | 1 | 文件只存在于本端设备。 | 4320| CLOUD | 2 | 文件只存在于云端。 | 4321| BOTH | 3 | 文件在本地和云中都存在。 | 4322 4323## AlbumType<sup>10+</sup> 4324 4325枚举,相册类型,表示是用户相册还是系统预置相册。 4326 4327**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4328 4329| 名称 | 值 | 说明 | 4330| ----- | ---- | ---- | 4331| USER | 0 | 用户相册。 | 4332| SYSTEM | 1024 | 系统预置相册。 | 4333 4334## AlbumSubType<sup>10+</sup> 4335 4336枚举,相册子类型,表示具体的相册类型。 4337 4338**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4339 4340| 名称 | 值 | 说明 | 4341| ----- | ---- | ---- | 4342| USER_GENERIC | 1 | 用户相册。 | 4343| FAVORITE | 1025 | 收藏夹。 | 4344| VIDEO | 1026 | 视频相册。 | 4345| HIDDEN | 1027 | 隐藏相册。 | 4346| TRASH | 1028 | 回收站。 | 4347| SCREENSHOT | 1029 | 截屏和录屏相册。 | 4348| CAMERA | 1030 | 相机拍摄的照片和视频相册。 | 4349| ANY | 2147483647 | 任意相册。 | 4350 4351## PrivateAlbumType 4352 4353枚举,系统相册类型。 4354 4355此接口即将废弃,请使用[AlbumType](#albumtype10)和[AlbumSubType](#albumsubtype10)和接口替代。 4356 4357**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4358 4359| 名称 | 值 | 说明 | 4360| ----- | ---- | ---- | 4361| TYPE_FAVORITE | 0 | 收藏夹相册。 | 4362| TYPE_TRASH | 1 | 回收站相册。 | 4363 4364## AudioKey 4365 4366枚举,音频文件关键信息。 4367 4368**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4369 4370| 名称 | 值 | 说明 | 4371| ------------- | ------------------- | ---------------------------------------------------------- | 4372| URI | uri | 文件uri。 | 4373| DISPLAY_NAME | display_name | 显示名字。 | 4374| DATE_ADDED | date_added | 添加日期(添加文件时间距1970年1月1日的秒数值)。 | 4375| DATE_MODIFIED | date_modified | 修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。 | 4376| TITLE | title | 文件标题。 | 4377| ARTIST | artist | 作者。 | 4378| AUDIOALBUM | audio_album | 专辑。 | 4379| DURATION | duration | 持续时间(单位:毫秒)。 | 4380| FAVORITE | favorite | 收藏。 | 4381 4382## ImageVideoKey 4383 4384枚举,图片和视频文件关键信息。 4385 4386**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4387 4388| 名称 | 值 | 说明 | 4389| ------------- | ------------------- | ---------------------------------------------------------- | 4390| URI | uri | 文件uri。 | 4391| FILE_TYPE | file_type | 媒体文件类型。 | 4392| DISPLAY_NAME | display_name | 显示名字。 | 4393| DATE_ADDED | date_added | 添加日期(添加文件时间距1970年1月1日的秒数值)。 | 4394| DATE_MODIFIED | date_modified | 修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。 | 4395| TITLE | title | 文件标题。 | 4396| DURATION | duration | 持续时间(单位:毫秒)。 | 4397| WIDTH | width | 图片宽度(单位:像素)。 | 4398| HEIGHT | height | 图片高度(单位:像素)。 | 4399| DATE_TAKEN | date_taken | 拍摄日期(文件拍照时间距1970年1月1日的秒数值)。 | 4400| ORIENTATION | orientation | 图片文件的方向。 | 4401| FAVORITE | favorite | 收藏。 | 4402| POSITION<sup>10+</sup> | position | 文件位置类型。 | 4403| DATE_TRASHED<sup>10+</sup> | date_trashed | 删除日期(删除文件时间距1970年1月1日的秒数值)。 | 4404| HIDDEN<sup>10+</sup> | hidden | 文件的隐藏状态。 | 4405| CAMERA_SHOT_KEY<sup>10+</sup> | camera_shot_key | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。 | 4406| USER_COMMENT<sup>10+</sup> | user_comment | 用户注释信息。 | 4407 4408## AlbumKey 4409 4410枚举,相册关键信息。 4411 4412**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4413 4414| 名称 | 值 | 说明 | 4415| ------------- | ------------------- | ---------------------------------------------------------- | 4416| URI | uri | 相册uri。 | 4417| FILE_TYPE | file_type | 媒体文件类型。 | 4418| ALBUM_NAME | album_name | 相册名字。 | 4419| DATE_ADDED | date_added | 添加日期(添加文件时间距1970年1月1日的秒数值)。 | 4420| DATE_MODIFIED | date_modified | 修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。 | 4421 4422## PhotoCreateOptions<sup>10+</sup> 4423 4424图片或视频的创建选项。 4425 4426**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4427 4428| 名称 | 类型 | 必填 | 说明 | 4429| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 4430| subType | [PhotoSubType](#photosubtype10) | 否 | 图片或者视频的子类型。 | 4431| cameraShotKey | string | 否 | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。 | 4432 4433## FetchOptions 4434 4435检索条件。 4436 4437**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4438 4439| 名称 | 类型 | 可读 | 可写 | 说明 | 4440| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ | 4441| fetchColumns | Array<string> | 是 | 是 | 检索条件,指定列名查询,如果该参数为空时默认查询uri、name、fileType(具体字段名称以检索对象定义为准)。示例:<br />fetchColumns: ['uri', 'title']。 | 4442| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是 | 是 | 谓词查询,显示过滤条件。 | 4443 4444## AlbumFetchOptions 4445 4446相册检索条件。 4447 4448**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4449 4450| 名称 | 类型 | 可读 | 可写 | 说明 | 4451| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ | 4452| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是 | 是 | 谓词查询,显示过滤条件。 | 4453 4454## ChangeData<sup>10+</sup> 4455 4456监听器回调函数的值。 4457 4458**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4459 4460| 名称 | 类型 | 可读 | 可写 | 说明 | 4461| ------- | --------------------------- | ---- | ---- | ------------------------------------------------------------ | 4462| type | [NotifyType](#notifytype10) | 是 | 否 | ChangeData的通知类型。 | 4463| uris | Array<string> | 是 | 否 | 相同[NotifyType](#notifytype10)的所有uri,可以是FileAsset或Album。 | 4464| subUris | Array<string> | 是 | 否 | 相册中变动文件的uri数组。 | 4465 4466## NotifyType<sup>10+</sup> 4467 4468枚举,通知事件的类型。 4469 4470**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4471 4472| 名称 | 值 | 说明 | 4473| ------------------------- | ---- | -------------------------------- | 4474| NOTIFY_ADD | 0 | 添加文件集或相册通知的类型。 | 4475| NOTIFY_UPDATE | 1 | 文件集或相册的更新通知类型。 | 4476| NOTIFY_REMOVE | 2 | 删除文件集或相册的通知类型。 | 4477| NOTIFY_ALBUM_ADD_ASSET | 3 | 在相册中添加的文件集的通知类型。 | 4478| NOTIFY_ALBUM_REMOVE_ASSET | 4 | 在相册中删除的文件集的通知类型。 | 4479 4480## DefaultChangeUri<sup>10+</sup> 4481 4482枚举,DefaultChangeUri子类型。 4483 4484**系统能力**:SystemCapability.FileManagement.UserFileManager.Core 4485 4486| 名称 | 值 | 说明 | 4487| ----------------- | ----------------------- | ------------------------------------------------------------ | 4488| DEFAULT_PHOTO_URI | file://media/Photo | 默认PhotoAsset的Uri,与forSubUri{true}一起使用,将接收所有PhotoAsset的更改通知。 | 4489| DEFAULT_ALBUM_URI | file://media/PhotoAlbum | 默认相册的Uri,与forSubUri{true}一起使用,将接收所有相册的更改通知。 | 4490| DEFAULT_AUDIO_URI | file://media/Audio | 默认AudioAsset的Uri,与forSubUri{true}一起使用,将接收所有AudioAsset的更改通知。 | 4491 4492