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