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