• 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```ts
68import dataSharePredicates from '@ohos.data.dataSharePredicates';
69
70async function example() {
71  console.info('getPhotoAssets');
72  let predicates = new dataSharePredicates.DataSharePredicates();
73  let fetchOptions = {
74    fetchColumns: [],
75    predicates: predicates
76  };
77
78  mgr.getPhotoAssets(fetchOptions, async (err, fetchResult) => {
79    if (fetchResult != undefined) {
80      console.info('fetchResult success');
81      let fileAsset = await fetchResult.getFirstObject();
82      if (fileAsset != undefined) {
83        console.info("fileAsset.displayName : " + fileAsset.displayName);
84      }
85    } else {
86      console.error('fetchResult fail' + err);
87    }
88  });
89}
90```
91
92### getPhotoAssets
93
94getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;
95
96获取图片和视频资源,使用Promise方式返回结果。
97
98**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
99
100**需要权限**:ohos.permission.READ_IMAGEVIDEO
101
102**参数:**
103
104| 参数名  | 类型                | 必填 | 说明             |
105| ------- | ------------------- | ---- | ---------------- |
106| options | [FetchOptions](#fetchoptions)   | 是   | 图片和视频检索选项     |
107
108**返回值:**
109
110| 类型                        | 说明           |
111| --------------------------- | -------------- |
112| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 图片和视频数据结果集 |
113
114**示例:**
115
116```ts
117import dataSharePredicates from '@ohos.data.dataSharePredicates';
118
119async function example() {
120  console.info('getPhotoAssets');
121  let predicates = new dataSharePredicates.DataSharePredicates();
122  let fetchOptions = {
123    fetchColumns: [],
124    predicates: predicates
125  };
126  try {
127    let fetchResult = await mgr.getPhotoAssets(fetchOptions);
128    if (fetchResult != undefined) {
129      console.info('fetchResult success');
130      let fileAsset = await fetchResult.getFirstObject();
131      if (fileAsset != undefined) {
132        console.info("fileAsset.displayName :" + fileAsset.displayName);
133      }
134    }
135  } catch (err) {
136    console.error('getPhotoAssets failed, message = ', err);
137  }
138}
139```
140
141### createPhotoAsset
142
143createPhotoAsset(displayName: string, albumUri: string, callback: AsyncCallback<FileAsset>): void;
144
145创建图片或视频资源,使用callback方式返回结果。
146
147**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
148
149**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
150
151**参数:**
152
153| 参数名   | 类型                     | 必填 | 说明                      |
154| -------- | ------------------------ | ---- | ------------------------- |
155| displayName  | string        | 是   | 创建的图片或者视频文件名              |
156| albumUri  | string        | 是   | 创建的图片或者视频所在相册的uri              |
157| callback |  AsyncCallback<[FileAsset](#fileasset)> | 是   | callback 返回创建的图片和视频结果 |
158
159**示例:**
160
161```ts
162import dataSharePredicates from '@ohos.data.dataSharePredicates';
163
164async function example() {
165  console.info('createPhotoAssetDemo');
166  let predicates = new dataSharePredicates.DataSharePredicates();
167  let fetchOptions = {
168    predicates: predicates
169  };
170  let albums = await mgr.getPhotoAlbums(fetchOptions);
171  let album = await albums.getFirstObject();
172  let testFileName = "testFile" + Date.now() + ".jpg";
173  mgr.createPhotoAsset(testFileName, album.albumUri, (err, fileAsset) => {
174    if (fileAsset != undefined) {
175      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
176      console.info('createPhotoAsset successfully');
177    } else {
178      console.error('createPhotoAsset failed, message = ', err);
179    }
180  });
181}
182```
183
184### createPhotoAsset
185
186createPhotoAsset(displayName: string, callback: AsyncCallback<FileAsset>): void;
187
188创建图片或视频资源,使用callback方式返回结果。
189
190**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
191
192**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
193
194**参数:**
195
196| 参数名   | 类型                     | 必填 | 说明                      |
197| -------- | ------------------------ | ---- | ------------------------- |
198| displayName  | string        | 是   | 创建的图片或者视频文件名              |
199| callback |  AsyncCallback<[FileAsset](#fileasset)> | 是   | callback 返回创建的图片和视频结果 |
200
201**示例:**
202
203```ts
204async function example() {
205  console.info('createPhotoAssetDemo');
206  let testFileName = "testFile" + Date.now() + ".jpg";
207  mgr.createPhotoAsset(testFileName, (err, fileAsset) => {
208    if (fileAsset != undefined) {
209      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
210      console.info('createPhotoAsset successfully');
211    } else {
212      console.error('createPhotoAsset failed, message = ', err);
213    }
214  });
215}
216```
217
218### createPhotoAsset
219
220createPhotoAsset(displayName: string, albumUri?: string): Promise<FileAsset>;
221
222创建图片或视频资源,使用Promise方式返回结果。
223
224**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
225
226**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
227
228**参数:**
229
230| 参数名   | 类型                     | 必填 | 说明                      |
231| -------- | ------------------------ | ---- | ------------------------- |
232| displayName  | string        | 是   | 创建的图片或者视频文件名              |
233| albumUri  | string        | 否   | 创建的图片或者视频所在相册的uri              |
234
235**返回值:**
236
237| 类型                        | 说明           |
238| --------------------------- | -------------- |
239| Promise<[FileAsset](#fileasset)> | 返回创建的图片和视频结果 |
240
241**示例:**
242
243```ts
244async function example() {
245  console.info('createPhotoAssetDemo');
246  try {
247    let testFileName = "testFile" + Date.now() + ".jpg";
248    let fileAsset = await mgr.createPhotoAsset(testFileName);
249    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
250    console.info('createPhotoAsset successfully');
251  } catch (err) {
252    console.error('createPhotoAsset failed, message = ', err);
253  }
254}
255```
256
257### getPhotoAlbums
258
259getPhotoAlbums(options: AlbumFetchOptions, callback: AsyncCallback<FetchResult<Album>>): void;
260
261获取相册,使用callback方式返回结果。
262
263**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
264
265**需要权限**:ohos.permission.READ_IMAGEVIDEO
266
267**参数:**
268
269| 参数名   | 类型                     | 必填 | 说明                      |
270| -------- | ------------------------ | ---- | ------------------------- |
271| options  | [AlbumFetchOptions](#albumfetchoptions)        | 是   | 相册检索选项              |
272| callback |  AsyncCallback<[FetchResult](#fetchresult)<[Album](#album)>> | 是   | callback 返回相册检索结果 |
273
274**示例:**
275
276```ts
277import dataSharePredicates from '@ohos.data.dataSharePredicates';
278
279async function example() {
280  console.info('getPhotoAlbumsDemo');
281  let predicates = new dataSharePredicates.DataSharePredicates();
282  let albumFetchOptions = {
283    predicates: predicates
284  };
285
286  mgr.getPhotoAlbums(albumFetchOptions, (err, fetchResult) => {
287    if (fetchResult != undefined) {
288      console.info('albums.count = ' + fetchResult.getCount());
289      fetchResult.getFirstObject((err, album) => {
290        if (album != undefined) {
291          console.info('first album.albumName = ' + album.albumName);
292        } else {
293          console.error('album is undefined, err = ', err);
294        }
295      });
296    } else {
297      console.error('getPhotoAlbums fail, message = ', err);
298    }
299  });
300}
301```
302
303### getPhotoAlbums
304
305getPhotoAlbums(options: AlbumFetchOptions): Promise<FetchResult<Album>>;
306
307获取相册,使用Promise方式返回结果。
308
309**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
310
311**需要权限**:ohos.permission.READ_IMAGEVIDEO
312
313**参数:**
314
315| 参数名   | 类型                     | 必填 | 说明                      |
316| -------- | ------------------------ | ---- | ------------------------- |
317| options  | [AlbumFetchOptions](#albumfetchoptions)        | 是   | 相册检索选项              |
318
319**返回值:**
320
321| 类型                        | 说明           |
322| --------------------------- | -------------- |
323| Promise<[FetchResult](#fetchresult)<[Album](#album)>> | Promise 返回相册检索结果 |
324
325**示例:**
326
327```ts
328import dataSharePredicates from '@ohos.data.dataSharePredicates';
329
330async function example() {
331  console.info('getPhotoAlbumsDemo');
332  let predicates = new dataSharePredicates.DataSharePredicates();
333  let albumFetchOptions = {
334    predicates: predicates
335  };
336  try {
337    let fetchResult = await mgr.getPhotoAlbums(albumFetchOptions);
338    console.info('album.count = ' + fetchResult.getCount());
339    const album = await fetchResult.getFirstObject();
340    console.info('first album.albumName = ' + album.albumName);
341  } catch (err) {
342    console.error('getPhotoAlbums fail, message = ' + err);
343  }
344}
345```
346
347### getPrivateAlbum
348
349getPrivateAlbum(type: PrivateAlbumType, callback: AsyncCallback<FetchResult<PrivateAlbum>>): void;
350
351获取系统相册,使用 callback 方式返回系统相册的数组。
352
353**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
354
355**需要权限**:ohos.permission.READ_IMAGEVIDEO
356
357**参数:**
358
359| 参数名   | 类型                     | 必填 | 说明                      |
360| -------- | ------------------------ | ---- | ------------------------- |
361| type  | [PrivateAlbumType](#privatealbumtype)        | 是   | 系统相册类型              |
362| callback |  AsyncCallback<[FetchResult](#fetchresult)<[PrivateAlbum](#privatealbum)>> | 是   | callback 返回相册检索结果 |
363
364**示例:**
365
366```ts
367async function example() {
368  console.info('getPrivateAlbumDemo');
369  mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH, async (err, fetchResult) => {
370    if (fetchResult != undefined) {
371      let trashAlbum = await fetchResult.getFirstObject();
372      console.info('first album.albumName = ' + trashAlbum.albumName);
373    } else {
374      console.error('getPrivateAlbum failed. message = ', err);
375    }
376  });
377}
378```
379
380### getPrivateAlbum
381
382getPrivateAlbum(type: PrivateAlbumType): Promise<FetchResult<PrivateAlbum>>;
383
384
385获取系统相册,使用Promise方式返回结果。
386
387**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
388
389**需要权限**:ohos.permission.READ_IMAGEVIDEO
390
391**参数:**
392
393| 参数名   | 类型                     | 必填 | 说明                      |
394| -------- | ------------------------ | ---- | ------------------------- |
395| type  | [PrivateAlbumType](#privatealbumtype)        | 是   | 系统相册类型              |
396
397**返回值:**
398
399| 类型                        | 说明           |
400| --------------------------- | -------------- |
401| Promise<[FetchResult](#fetchresult)<[PrivateAlbum](#privatealbum)>> | Promise 返回相册检索结果 |
402
403**示例:**
404
405```ts
406async function example() {
407  console.info('getPrivateAlbumDemo');
408  try {
409    let fetchResult = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
410    let trashAlbum = await fetchResult.getFirstObject();
411    console.info('first album.albumName = ' + trashAlbum.albumName);
412  } catch (err) {
413    console.error('getPrivateAlbum failed. message = ', err);
414  }
415}
416```
417
418### getAudioAssets
419
420getAudioAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void;
421
422获取音频文件,使用callback方式返回结果。
423
424**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
425
426**需要权限**:ohos.permission.READ_AUDIO
427
428**参数:**
429
430| 参数名   | 类型                     | 必填 | 说明                      |
431| -------- | ------------------------ | ---- | ------------------------- |
432| options  | [FetchOptions](#fetchoptions)        | 是   | 检索选项              |
433| callback |  AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是   | callback 返回音频检索结果 |
434
435**示例:**
436
437```ts
438import dataSharePredicates from '@ohos.data.dataSharePredicates';
439
440async function example() {
441  console.info('getAudioAssets');
442  let predicates = new dataSharePredicates.DataSharePredicates();
443  let fetchOptions = {
444    fetchColumns: [],
445    predicates: predicates
446  };
447
448  mgr.getAudioAssets(fetchOptions, async (err, fetchResult) => {
449    if (fetchResult != undefined) {
450      console.info('fetchFileResult success');
451      let fileAsset = await fetchResult.getFirstObject();
452      if (fileAsset != undefined) {
453        console.info("fileAsset.displayName :" + fileAsset.displayName);
454      }
455    } else {
456      console.error('fetchFileResult fail' + err);
457    }
458  });
459}
460```
461
462### getAudioAssets
463
464getAudioAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;
465
466获取音频文件,使用callback方式返回结果。
467
468**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
469
470**需要权限**:ohos.permission.READ_AUDIO
471
472**参数:**
473
474| 参数名   | 类型                     | 必填 | 说明                      |
475| -------- | ------------------------ | ---- | ------------------------- |
476| options  | [FetchOptions](#fetchoptions)        | 是   | 检索选项              |
477
478**返回值:**
479
480| 类型                        | 说明           |
481| --------------------------- | -------------- |
482| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise 返回音频检索结果 |
483
484**示例:**
485
486```ts
487import dataSharePredicates from '@ohos.data.dataSharePredicates';
488
489async function example() {
490  console.info('getAudioAssets');
491  let predicates = new dataSharePredicates.DataSharePredicates();
492  let fetchOptions = {
493    fetchColumns: [],
494    predicates: predicates
495  };
496  try {
497    var fetchResult = await mgr.getAudioAssets(fetchOptions);
498  } catch (err) {
499    console.error('getAudioAssets failed, message = ', err);
500  }
501
502  if (fetchResult != undefined) {
503    console.info('fetchFileResult success');
504    let fileAsset = await fetchResult.getFirstObject();
505    if (fileAsset != undefined) {
506      console.info("fileAsset.displayName :" + fileAsset.displayName);
507    }
508  }
509}
510```
511
512### delete
513
514delete(uri: string, callback: AsyncCallback<void>): void;
515
516删除媒体文件,删除的文件进入到回收站。
517
518**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEOohos.permission.READ_AUDIOohos.permission.WRITE_AUDIO
519
520**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
521
522**参数**:
523
524| 参数名   | 类型                      | 必填 | 说明       |
525| -------- | ------------------------- | ---- | ---------- |
526| uri | string | 是   | 媒体文件uri |
527| callback | AsyncCallback<void> | 是   | 回调返回空 |
528
529**示例**:
530
531```ts
532import dataSharePredicates from '@ohos.data.dataSharePredicates';
533
534async function example() {
535  console.info('deleteAssetDemo');
536  let predicates = new dataSharePredicates.DataSharePredicates();
537  let fetchOptions = {
538    fetchColumns: [],
539    predicates: predicates
540  };
541  try {
542    const fetchResult = await mgr.getPhotoAssets(fetchOptions);
543    var asset = await fetchResult.getFirstObject();
544  } catch (err) {
545    console.info('fetch failed, message =', err);
546  }
547
548  if (asset == undefined) {
549    console.error('asset not exist');
550    return;
551  }
552  mgr.delete(asset.uri, (err) => {
553    if (err == undefined) {
554      console.info("delete successfully");
555    } else {
556      console.error("delete failed with error: " + err);
557    }
558  });
559}
560```
561
562### delete
563
564delete(uri: string): Promise<void>;
565
566删除媒体文件,删除的文件进入到回收站。
567
568**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEOohos.permission.READ_AUDIOohos.permission.WRITE_AUDIO
569
570**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
571
572**参数**:
573
574| 参数名   | 类型                      | 必填 | 说明       |
575| -------- | ------------------------- | ---- | ---------- |
576| uri | string | 是   | 媒体文件uri |
577
578**返回值:**
579
580| 类型                                    | 说明              |
581| --------------------------------------- | ----------------- |
582| Promise<void>| 回调返回空 |
583
584**示例**:
585
586```ts
587import dataSharePredicates from '@ohos.data.dataSharePredicates';
588
589async function example() {
590  console.info('deleteDemo');
591  let predicates = new dataSharePredicates.DataSharePredicates();
592  let fetchOptions = {
593    fetchColumns: [],
594    predicates: predicates
595  };
596  try {
597    const fetchResult = await mgr.getPhotoAssets(fetchOptions);
598    var asset = await fetchResult.getFirstObject();
599  } catch (err) {
600    console.info('fetch failed, message =', err);
601  }
602
603  if (asset == undefined) {
604    console.error('asset not exist');
605    return;
606  }
607  try {
608    await mgr.delete(asset.uri);
609    console.info("delete successfully");
610  } catch (err) {
611    console.error("delete failed with error: " + err);
612  }
613}
614```
615
616### on
617
618on(type: ChangeEvent, callback: Callback<void>): void
619
620打开文件管理库变更通知,使用callback方式返回异步结果。
621
622**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
623
624**参数:**
625
626| 参数名   | 类型                 | 必填 | 说明                                                         |
627| -------- | -------------------- | ---- | ------------------------------------------------------------ |
628| type     | [ChangeEvent](#changeevent)               | 是   | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
629| callback | Callback&lt;void&gt; | 是   | 回调返回空                                                   |
630
631**示例:**
632
633```ts
634async function example() {
635  console.info('onDemo');
636  let count = 0;
637  mgr.on('imageChange', () => {
638    count++;
639    // image file had changed, do something
640  });
641  try {
642    let testFileName = "testFile" + Date.now() + ".jpg";
643    let fileAsset = await mgr.createPhotoAsset(testFileName);
644    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
645    console.info('createPhotoAsset successfully');
646  } catch (err) {
647    console.error('createPhotoAsset failed, message = ' + err);
648  }
649  //sleep 1s
650  if (count > 0) {
651    console.info("onDemo success");
652  } else {
653    console.error("onDemo fail");
654  }
655  mgr.off('imageChange', () => {
656    // stop listening success
657  });
658}
659```
660
661### off
662
663off(type: ChangeEvent, callback?: Callback&lt;void&gt;): void
664
665关闭文件管理库变更通知,使用callback方式返回异步结果。
666
667**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
668
669**参数:**
670
671| 参数名   | 类型                 | 必填 | 说明                                                         |
672| -------- | -------------------- | ---- | ------------------------------------------------------------ |
673| type     | [ChangeEvent](#changeevent)               | 是   | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
674| callback | Callback&lt;void&gt; | 否   | 回调返回空                                                   |
675
676**示例:**
677
678```ts
679async function example() {
680  console.info('offDemo');
681  let count = 0;
682  mgr.on('imageChange', () => {
683    count++;
684    // image file had changed, do something
685  });
686
687  mgr.off('imageChange', () => {
688    // stop listening success
689  });
690
691  try {
692    let testFileName = "testFile" + Date.now() + ".jpg";
693    let fileAsset = await mgr.createPhotoAsset(testFileName);
694    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
695    console.info('createPhotoAsset successfully');
696  } catch (err) {
697    console.error('createPhotoAsset failed, message = ' + err);
698  }
699  //sleep 1s
700  if (count == 0) {
701    console.info("offDemo success");
702  } else {
703    console.error("offDemo fail");
704  }
705}
706```
707
708### getActivePeers
709
710getActivePeers(callback: AsyncCallback&lt;Array&lt;PeerInfo&gt;&gt;): void;
711
712获取在线对端设备的信息,使用callback方式返回异步结果。
713
714**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore
715
716**参数:**
717
718| 参数名   | 类型                              | 必填 | 说明         |
719| -------- | --------------------------------- | ---- | ------------ |
720| callback | AsyncCallback&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | 是   | 返回在线设备列表 |
721
722**示例:**
723
724```ts
725async function example() {
726  console.info('getActivePeersDemo');
727  mgr.getActivePeers((err, devicesInfo) => {
728    if (devicesInfo != undefined) {
729      console.log('getActivePeers succeed.');
730      for (let i = 0; i < devicesInfo.length; i++) {
731        console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
732      }
733    } else {
734      console.error('getActivePeers failed. message = ', err);
735    }
736  });
737}
738```
739
740### getActivePeers
741
742getActivePeers(): Promise&lt;Array&lt;PeerInfo&gt;&gt;;
743
744获取在线对端设备的信息,使用promise方式返回异步结果。
745
746**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore
747
748**返回值:**
749
750| 类型                        | 说明                          |
751| --------------------------- | ----------------------------- |
752| Promise&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | Promise实例,返回在线设备列表 |
753
754**示例:**
755
756```ts
757async function example() {
758  console.info('getActivePeersDemo');
759  try {
760    var devicesInfo = await mgr.getActivePeers();
761  } catch (err) {
762    console.error('getActivePeers failed. message = ', err);
763  }
764  if (devicesInfo != undefined) {
765    console.log('getActivePeers succeed.');
766    for (let i = 0; i < devicesInfo.length; i++) {
767      console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
768    }
769  } else {
770    console.error('get distributed fail');
771  }
772}
773```
774
775### getAllPeers
776
777getAllPeers(callback: AsyncCallback&lt;Array&lt;PeerInfo&gt;&gt;): void;
778
779获取所有对端设备的信息,使用callback方式返回异步结果。
780
781**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore
782
783**参数:**
784
785| 参数名   | 类型                              | 必填 | 说明         |
786| -------- | --------------------------------- | ---- | ------------ |
787| callback | AsyncCallback&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | 是   | 返回在线设备列表 |
788
789**示例:**
790
791```ts
792async function example() {
793  console.info('getAllPeersDemo');
794  mgr.getAllPeers((err, devicesInfo) => {
795    if (devicesInfo != undefined) {
796      console.log('getAllPeers succeed.');
797      for (let i = 0; i < devicesInfo.length; i++) {
798        console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
799      }
800    } else {
801      console.error('getAllPeers failed. message = ', err);
802    }
803  });
804}
805```
806
807### getAllPeers
808
809getAllPeers(): Promise&lt;Array&lt;PeerInfo&gt;&gt;;
810
811获取所有对端设备的信息,使用promise方式返回异步结果。
812
813**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore
814
815**返回值:**
816
817| 类型                        | 说明                          |
818| --------------------------- | ----------------------------- |
819| Promise&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | Promise实例,返回所有设备列表 |
820
821**示例:**
822
823```ts
824async function example() {
825  console.info('getAllPeersDemo');
826  try {
827    var devicesInfo = await mgr.getAllPeers();
828  } catch (err) {
829    console.error('getAllPeers failed. message = ', err);
830  }
831  if (devicesInfo != undefined) {
832    console.log('getAllPeers succeed.');
833    for (let i = 0; i < devicesInfo.length; i++) {
834      console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
835    }
836  } else {
837    console.error('get distributed fail');
838  }
839}
840```
841
842### release
843
844release(callback: AsyncCallback&lt;void&gt;): void
845
846释放UserFileManager实例。
847当后续不需要使用UserFileManager实例中的方法时调用。
848
849**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
850
851**参数:**
852
853| 参数名   | 类型                      | 必填 | 说明                 |
854| -------- | ------------------------- | ---- | -------------------- |
855| callback | AsyncCallback&lt;void&gt; | 是   | 回调表示成功还是失败 |
856
857**示例:**
858
859```ts
860async function example() {
861  console.info('releaseDemo');
862  mgr.release((err) => {
863    if (err != undefined) {
864      console.error('release failed. message = ', err);
865    } else {
866      console.info('release ok.');
867    }
868  });
869}
870```
871
872### release
873
874release(): Promise&lt;void&gt;
875
876释放UserFileManager实例。
877当后续不需要使用UserFileManager 实例中的方法时调用。
878
879**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
880
881**返回值:**
882
883| 类型                | 说明                              |
884| ------------------- | --------------------------------- |
885| Promise&lt;void&gt; | Promise实例,用于获取异步返回结果 |
886
887**示例:**
888
889```ts
890async function example() {
891  console.info('releaseDemo');
892  try {
893    await mgr.release();
894    console.info('release ok.');
895  } catch (err) {
896    console.error('release failed. message = ', err);
897  }
898}
899```
900
901## FileAsset
902
903提供封装文件属性的方法。
904
905### 属性
906
907**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
908
909| 名称                      | 类型                     | 可读 | 可写 | 说明                                                   |
910| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ |
911| uri                       | string                   | 是   | 否   | 文件资源uri(如:dataability:///media/image/2)         |
912| fileType   | [FileType](#filetype) | 是   | 否   | 媒体文件类型                                               |
913| displayName               | string                   | 是   | 是   | 显示文件名,包含后缀名                                 |
914
915
916### get
917
918get(member: string): MemberType;
919
920获取FileAsset成员参数。
921
922**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
923
924**参数:**
925
926| 参数名      | 类型                        | 必填   | 说明    |
927| -------- | ------------------------- | ---- | ----- |
928| member | string | 是    | 成员参数名称例如:ImageVideoKey.URI |
929
930**示例:**
931
932```ts
933import dataSharePredicates from '@ohos.data.dataSharePredicates';
934
935async function example() {
936  console.info('fileAssetGetDemo');
937  try {
938    let predicates = new dataSharePredicates.DataSharePredicates();
939    let fetchOption = {
940      fetchColumns: [],
941      predicates: predicates
942    };
943    let fetchResult = await mgr.getPhotoAssets(fetchOption);
944    let fileAsset = await fetchResult.getFirstObject();
945    let title = userFileManager.ImageVideoKey.TITLE;
946    let fileAssetTitle = fileAsset.get(title.toString());
947    console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
948  } catch (err) {
949    console.error('release failed. message = ', err);
950  }
951}
952```
953
954### set
955
956set(member: string, value: string): void;
957
958设置FileAsset成员参数。
959
960**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
961
962**参数:**
963
964| 参数名      | 类型                        | 必填   | 说明    |
965| -------- | ------------------------- | ---- | ----- |
966| member | string | 是    | 成员参数名称例如:ImageVideoKey.URI |
967| value | string | 是    | 设置成员参数名称,只能修改ImageVideoKey.TITLE的值 |
968
969**示例:**
970
971```ts
972import dataSharePredicates from '@ohos.data.dataSharePredicates';
973
974async function example() {
975  console.info('fileAssetSetDemo');
976  try {
977    let predicates = new dataSharePredicates.DataSharePredicates();
978    let fetchOption = {
979      fetchColumns: [],
980      predicates: predicates
981    };
982    let fetchResult = await mgr.getPhotoAssets(fetchOption);
983    let fileAsset = await fetchResult.getFirstObject();
984    let title = userFileManager.ImageVideoKey.TITLE;
985    fileAsset.set(title.toString(), "newTitle");
986  } catch (err) {
987    console.error('release failed. message = ', err);
988  }
989}
990```
991
992### commitModify
993
994commitModify(callback: AsyncCallback&lt;void&gt;): void
995
996修改文件的元数据,使用callback方式返回异步结果。
997
998**需要权限**:ohos.permission.WRITE_IMAGEVIDEOohos.permission.WRITE_AUDIO
999
1000**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1001
1002**参数:**
1003
1004| 参数名      | 类型                        | 必填   | 说明    |
1005| -------- | ------------------------- | ---- | ----- |
1006| callback | AsyncCallback&lt;void&gt; | 是    | 回调返回空 |
1007
1008**示例:**
1009
1010```ts
1011import dataSharePredicates from '@ohos.data.dataSharePredicates';
1012
1013async function example() {
1014  console.info('commitModifyDemo');
1015  let predicates = new dataSharePredicates.DataSharePredicates();
1016  let fetchOption = {
1017    fetchColumns: [],
1018    predicates: predicates
1019  };
1020  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1021  let fileAsset = await fetchResult.getFirstObject();
1022  let title = userFileManager.ImageVideoKey.TITLE;
1023  let fileAssetTitle = fileAsset.get(title.toString());
1024  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
1025  fileAsset.set(title.toString(), "newTitle");
1026  fileAsset.commitModify((err) => {
1027    if (err == undefined) {
1028      let newFileAssetTitle = fileAsset.get(title.toString());
1029      console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
1030    } else {
1031      console.error('commitModify failed, message =', err);
1032    }
1033  });
1034}
1035```
1036
1037### commitModify
1038
1039commitModify(): Promise&lt;void&gt;
1040
1041修改文件的元数据,使用promise方式返回异步结果。
1042
1043**需要权限**:ohos.permission.WRITE_IMAGEVIDEOohos.permission.WRITE_AUDIO
1044
1045**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1046
1047**返回值:**
1048
1049| 类型                  | 说明         |
1050| ------------------- | ---------- |
1051| Promise&lt;void&gt; | Promise返回空 |
1052
1053**示例:**
1054
1055```ts
1056import dataSharePredicates from '@ohos.data.dataSharePredicates';
1057
1058async function example() {
1059  console.info('commitModifyDemo');
1060  let predicates = new dataSharePredicates.DataSharePredicates();
1061  let fetchOption = {
1062    fetchColumns: [],
1063    predicates: predicates
1064  };
1065  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1066  let fileAsset = await fetchResult.getFirstObject();
1067  let title = userFileManager.ImageVideoKey.TITLE;
1068  let fileAssetTitle = fileAsset.get(title.toString());
1069  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
1070  fileAsset.set(title.toString(), "newTitle");
1071  try {
1072    await fileAsset.commitModify();
1073    let newFileAssetTitle = fileAsset.get(title.toString());
1074    console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
1075  } catch (err) {
1076    console.error('release failed. message = ', err);
1077  }
1078}
1079```
1080
1081### open
1082
1083open(mode: string, callback: AsyncCallback&lt;number&gt;): void
1084
1085打开当前文件,使用callback方式返回异步结果。
1086
1087**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。
1088
1089**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.READ_AUDIOohos.permission.WRITE_IMAGEVIDEOohos.permission.WRITE_AUDIO
1090
1091**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1092
1093**参数**
1094
1095| 参数名      | 类型                          | 必填   | 说明                                  |
1096| -------- | --------------------------- | ---- | ----------------------------------- |
1097| mode     | string                      | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
1098| callback | AsyncCallback&lt;number&gt; | 是    | 回调返回文件描述符                            |
1099
1100**示例:**
1101
1102```ts
1103async function example() {
1104  console.info('openDemo');
1105   let testFileName = "testFile" + Date.now() + ".jpg";
1106  const fileAsset = await mgr.createPhotoAsset(testFileName);
1107  fileAsset.open('rw', (err, fd) => {
1108    if (fd != undefined) {
1109      console.info('File fd' + fd);
1110      fileAsset.close(fd);
1111    } else {
1112      console.error('File err' + err);
1113    }
1114  });
1115}
1116```
1117
1118### open
1119
1120open(mode: string): Promise&lt;number&gt;
1121
1122打开当前文件,使用promise方式返回异步结果。
1123
1124**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。
1125
1126**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.READ_AUDIOohos.permission.WRITE_IMAGEVIDEOohos.permission.WRITE_AUDIO
1127
1128**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1129
1130**参数:**
1131
1132| 参数名  | 类型     | 必填   | 说明                                  |
1133| ---- | ------ | ---- | ----------------------------------- |
1134| mode | string | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
1135
1136**返回值:**
1137
1138| 类型                    | 说明            |
1139| --------------------- | ------------- |
1140| Promise&lt;number&gt; | Promise返回文件描述符 |
1141
1142**示例:**
1143
1144```ts
1145async function example() {
1146  console.info('openDemo');
1147  try {
1148    let testFileName = "testFile" + Date.now() + ".jpg";
1149    const fileAsset = await mgr.createPhotoAsset(testFileName);
1150    let fd = await fileAsset.open('rw');
1151    if (fd != undefined) {
1152      console.info('File fd' + fd);
1153      fileAsset.close(fd);
1154    } else {
1155      console.error(' open File fail');
1156    }
1157  } catch (err) {
1158    console.error('open Demo err' + err);
1159  }
1160}
1161```
1162
1163### close
1164
1165close(fd: number, callback: AsyncCallback&lt;void&gt;): void
1166
1167关闭当前文件,使用callback方式返回异步结果。
1168
1169**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1170
1171**参数:**
1172
1173| 参数名      | 类型                        | 必填   | 说明    |
1174| -------- | ------------------------- | ---- | ----- |
1175| fd       | number                    | 是    | 文件描述符 |
1176| callback | AsyncCallback&lt;void&gt; | 是    | 回调返回空 |
1177
1178**示例:**
1179
1180```ts
1181import dataSharePredicates from '@ohos.data.dataSharePredicates';
1182
1183async function example() {
1184  console.info('closeDemo');
1185  try {
1186    let predicates = new dataSharePredicates.DataSharePredicates();
1187    let fetchOption = {
1188      fetchColumns: [],
1189      predicates: predicates
1190    };
1191    let fetchResult = await mgr.getPhotoAssets(fetchOption);
1192    const fileAsset = await fetchResult.getFirstObject();
1193    let fd = await fileAsset.open('rw');
1194    console.info('file fd', fd);
1195    fileAsset.close(fd, (err) => {
1196      if (err == undefined) {
1197        console.info('asset close succeed.');
1198      } else {
1199        console.error('close failed, message = ' + err);
1200      }
1201    });
1202  } catch (err) {
1203    console.error('close failed, message = ' + err);
1204  }
1205}
1206```
1207
1208### close
1209
1210close(fd: number): Promise&lt;void&gt;
1211
1212关闭当前文件,使用promise方式返回异步结果。
1213
1214**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1215
1216**参数:**
1217
1218| 参数名  | 类型     | 必填   | 说明    |
1219| ---- | ------ | ---- | ----- |
1220| fd   | number | 是    | 文件描述符 |
1221
1222**返回值:**
1223
1224| 类型                  | 说明         |
1225| ------------------- | ---------- |
1226| Promise&lt;void&gt; | Promise返回空 |
1227
1228**示例:**
1229
1230```ts
1231import dataSharePredicates from '@ohos.data.dataSharePredicates';
1232
1233async function example() {
1234  console.info('closeDemo');
1235  try {
1236    let predicates = new dataSharePredicates.DataSharePredicates();
1237    let fetchOption = {
1238      fetchColumns: [],
1239      predicates: predicates
1240    };
1241    let fetchResult = await mgr.getPhotoAssets(fetchOption);
1242    const asset = await fetchResult.getFirstObject();
1243    let fd = await asset.open('rw');
1244    console.info('file fd', fd);
1245    await asset.close(fd);
1246    console.info('asset close succeed.');
1247  } catch (err) {
1248    console.error('close failed, message = ' + err);
1249  }
1250}
1251```
1252
1253### getThumbnail
1254
1255getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void
1256
1257获取文件的缩略图,使用callback方式返回异步结果。
1258
1259**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.READ_AUDIO
1260
1261**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1262
1263**参数:**
1264
1265| 参数名      | 类型                                  | 必填   | 说明               |
1266| -------- | ----------------------------------- | ---- | ---------------- |
1267| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | 是    | 回调返回缩略图的PixelMap |
1268
1269**示例:**
1270
1271```ts
1272import dataSharePredicates from '@ohos.data.dataSharePredicates';
1273
1274async function example() {
1275  console.info('getThumbnailDemo');
1276  let predicates = new dataSharePredicates.DataSharePredicates();
1277  let fetchOption = {
1278    fetchColumns: [],
1279    predicates: predicates
1280  };
1281  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1282  const asset = await fetchResult.getFirstObject();
1283  console.info('asset displayName = ', asset.displayName);
1284  asset.getThumbnail((err, pixelMap) => {
1285    if (err == undefined) {
1286      console.info('getThumbnail successful ' + pixelMap);
1287    } else {
1288      console.error('getThumbnail fail', err);
1289    }
1290  });
1291}
1292```
1293
1294### getThumbnail
1295
1296getThumbnail(size: image.Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
1297
1298获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。
1299
1300**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.READ_AUDIO
1301
1302**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1303
1304**参数:**
1305
1306| 参数名      | 类型                                  | 必填   | 说明               |
1307| -------- | ----------------------------------- | ---- | ---------------- |
1308| size     | [image.Size](js-apis-image.md#size) | 是    | 缩略图尺寸            |
1309| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | 是    | 回调返回缩略图的PixelMap |
1310
1311**示例:**
1312
1313```ts
1314import dataSharePredicates from '@ohos.data.dataSharePredicates';
1315
1316async function example() {
1317  console.info('getThumbnailDemo');
1318  let predicates = new dataSharePredicates.DataSharePredicates();
1319  let fetchOption = {
1320    fetchColumns: [],
1321    predicates: predicates
1322  };
1323  let size = { width: 720, height: 720 };
1324  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1325  const asset = await fetchResult.getFirstObject();
1326  console.info('asset displayName = ', asset.displayName);
1327  asset.getThumbnail(size, (err, pixelMap) => {
1328    if (err == undefined) {
1329      console.info('getThumbnail successful ' + pixelMap);
1330    } else {
1331      console.error('getThumbnail fail', err);
1332    }
1333  });
1334}
1335```
1336
1337### getThumbnail
1338
1339getThumbnail(size?: image.Size): Promise&lt;image.PixelMap&gt;
1340
1341获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。
1342
1343**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.READ_AUDIO
1344
1345**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1346
1347**参数:**
1348
1349| 参数名  | 类型             | 必填   | 说明    |
1350| ---- | -------------- | ---- | ----- |
1351| size | [image.Size](js-apis-image.md#size) | 否    | 缩略图尺寸 |
1352
1353**返回值:**
1354
1355| 类型                            | 说明                    |
1356| ----------------------------- | --------------------- |
1357| Promise&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | Promise返回缩略图的PixelMap |
1358
1359**示例:**
1360
1361```ts
1362import dataSharePredicates from '@ohos.data.dataSharePredicates';
1363
1364async function example() {
1365  console.info('getThumbnailDemo');
1366  let predicates = new dataSharePredicates.DataSharePredicates();
1367  let fetchOption = {
1368    fetchColumns: [],
1369    predicates: predicates
1370  };
1371  let size = { width: 720, height: 720 };
1372  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1373  const asset = await fetchResult.getFirstObject();
1374  console.info('asset displayName = ', asset.displayName);
1375  asset.getThumbnail(size).then((pixelMap) => {
1376    console.info('getThumbnail successful ' + pixelMap);
1377  }).catch((err) => {
1378    console.error('getThumbnail fail' + err);
1379  });
1380}
1381```
1382
1383### favorite
1384
1385favorite(isFavorite: boolean, callback: AsyncCallback&lt;void&gt;): void
1386
1387将文件设置为收藏文件,使用callback方式返回异步结果。
1388
1389**需要权限**:ohos.permission.WRITE_IMAGEVIDEOohos.permission.WRITE_AUDIO
1390
1391**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1392
1393**参数:**
1394
1395| 参数名        | 类型                        | 必填   | 说明                                 |
1396| ---------- | ------------------------- | ---- | ---------------------------------- |
1397| isFavorite | boolean                   | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
1398| callback   | AsyncCallback&lt;void&gt; | 是    | 回调返回空                              |
1399
1400**示例:**
1401
1402```ts
1403import dataSharePredicates from '@ohos.data.dataSharePredicates';
1404
1405async function example() {
1406  console.info('favoriteDemo');
1407  let predicates = new dataSharePredicates.DataSharePredicates();
1408  let fetchOption = {
1409    fetchColumns: [],
1410    predicates: predicates
1411  };
1412  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1413  const asset = await fetchResult.getFirstObject();
1414  asset.favorite(true, (err) => {
1415    if (err == undefined) {
1416      console.info("favorite successfully");
1417    } else {
1418      console.error("favorite failed with error:" + err);
1419    }
1420  });
1421}
1422```
1423
1424### favorite
1425
1426favorite(isFavorite: boolean): Promise&lt;void&gt;
1427
1428将文件设置为收藏文件,使用promise方式返回异步结果。
1429
1430**需要权限**:ohos.permission.WRITE_IMAGEVIDEOohos.permission.WRITE_AUDIO
1431
1432**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1433
1434**参数:**
1435
1436| 参数名        | 类型      | 必填   | 说明                                 |
1437| ---------- | ------- | ---- | ---------------------------------- |
1438| isFavorite | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
1439
1440**返回值:**
1441
1442| 类型                  | 说明         |
1443| ------------------- | ---------- |
1444| Promise&lt;void&gt; | Promise返回空 |
1445
1446**示例:**
1447
1448```ts
1449import dataSharePredicates from '@ohos.data.dataSharePredicates';
1450
1451async function example() {
1452  console.info('favoriteDemo');
1453  let predicates = new dataSharePredicates.DataSharePredicates();
1454  let fetchOption = {
1455    fetchColumns: [],
1456    predicates: predicates
1457  };
1458  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1459  const asset = await fetchResult.getFirstObject();
1460  asset.favorite(true).then(function () {
1461    console.info("favorite successfully");
1462  }).catch(function (err) {
1463    console.error("favorite failed with error:" + err);
1464  });
1465}
1466```
1467
1468## FetchResult
1469
1470文件检索结果集。
1471
1472### getCount
1473
1474getCount(): number
1475
1476获取文件检索结果中的文件总数。
1477
1478**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1479
1480**返回值:**
1481
1482| 类型     | 说明       |
1483| ------ | -------- |
1484| number | 检索到的文件总数 |
1485
1486**示例**:
1487
1488```ts
1489import dataSharePredicates from '@ohos.data.dataSharePredicates';
1490
1491async function example() {
1492  console.info('getCountDemo');
1493  let predicates = new dataSharePredicates.DataSharePredicates();
1494  let fetchOption = {
1495    fetchColumns: [],
1496    predicates: predicates
1497  };
1498  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1499  const fetchCount = fetchResult.getCount();
1500  console.info('fetchCount = ', fetchCount);
1501}
1502```
1503
1504### isAfterLast
1505
1506isAfterLast(): boolean
1507
1508检查结果集是否指向最后一行。
1509
1510**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1511
1512**返回值:**
1513
1514| 类型      | 说明                                 |
1515| ------- | ---------------------------------- |
1516| boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 |
1517
1518**示例**:
1519
1520```ts
1521import dataSharePredicates from '@ohos.data.dataSharePredicates';
1522
1523async function example() {
1524  let predicates = new dataSharePredicates.DataSharePredicates();
1525  let fetchOption = {
1526    fetchColumns: [],
1527    predicates: predicates
1528  };
1529  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1530  const fetchCount = fetchResult.getCount();
1531  console.info('count:' + fetchCount);
1532  let fileAsset = await fetchResult.getLastObject();
1533  if (!fetchResult.isAfterLast()) {
1534    console.info('fileAsset isAfterLast displayName = ', fileAsset.displayName);
1535  } else {
1536    console.info('fileAsset  not isAfterLast ');
1537  }
1538}
1539```
1540
1541### close
1542
1543close(): void
1544
1545释放 FetchFileResult 实例并使其失效。无法调用其他方法。
1546
1547**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1548
1549**示例**:
1550
1551```ts
1552import dataSharePredicates from '@ohos.data.dataSharePredicates';
1553
1554async function example() {
1555  console.info('fetchResultCloseDemo');
1556  let predicates = new dataSharePredicates.DataSharePredicates();
1557  let fetchOption = {
1558    fetchColumns: [],
1559    predicates: predicates
1560  };
1561  try {
1562    let fetchResult = await mgr.getPhotoAssets(fetchOption);
1563    await fetchResult.close();
1564    console.info('close succeed.');
1565  } catch (err) {
1566    console.error('close fail. message = ' + err);
1567  }
1568}
1569```
1570
1571### getFirstObject
1572
1573getFirstObject(callback: AsyncCallback&lt;T&gt;): void
1574
1575获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。
1576
1577**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1578
1579**参数**:
1580
1581| 参数名   | 类型                                          | 必填 | 说明                                        |
1582| -------- | --------------------------------------------- | ---- | ------------------------------------------- |
1583| callback | AsyncCallback&lt;T&gt; | 是   | 异步获取结果集中的第一个完成后的回调 |
1584
1585**示例**:
1586
1587```ts
1588import dataSharePredicates from '@ohos.data.dataSharePredicates';
1589
1590async function example() {
1591  console.info('getFirstObjectDemo');
1592  let predicates = new dataSharePredicates.DataSharePredicates();
1593  let fetchOption = {
1594    fetchColumns: [],
1595    predicates: predicates
1596  };
1597  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1598  fetchResult.getFirstObject((err, fileAsset) => {
1599    if (fileAsset != undefined) {
1600      console.info('fileAsset displayName: ', fileAsset.displayName);
1601    } else {
1602      console.error("fileAsset failed with err:" + err);
1603    }
1604  });
1605}
1606```
1607
1608### getFirstObject
1609
1610getFirstObject(): Promise&lt;T&gt;
1611
1612获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。
1613
1614**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1615
1616**返回值:**
1617
1618| 类型                                    | 说明                       |
1619| --------------------------------------- | -------------------------- |
1620| Promise&lt;T&gt; | Promise方式返回 |
1621
1622**示例**:
1623
1624```ts
1625import dataSharePredicates from '@ohos.data.dataSharePredicates';
1626
1627async function example() {
1628  console.info('getFirstObjectDemo');
1629  let predicates = new dataSharePredicates.DataSharePredicates();
1630  let fetchOption = {
1631    fetchColumns: [],
1632    predicates: predicates
1633  };
1634  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1635  let fileAsset = await fetchResult.getFirstObject();
1636  console.info('fileAsset displayName: ', fileAsset.displayName);
1637}
1638```
1639
1640### getNextObject
1641
1642 getNextObject(callback: AsyncCallback&lt;T&gt;): void
1643
1644获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。
1645
1646**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1647
1648**参数**:
1649
1650| 参数名    | 类型                                          | 必填 | 说明                                      |
1651| --------- | --------------------------------------------- | ---- | ----------------------------------------- |
1652| callbacke | AsyncCallback&lt;T&gt; | 是   | 异步返回结果集中下一个之后的回调 |
1653
1654**示例**:
1655
1656```ts
1657import dataSharePredicates from '@ohos.data.dataSharePredicates';
1658
1659async function example() {
1660  console.info('getNextObjectDemo');
1661  let predicates = new dataSharePredicates.DataSharePredicates();
1662  let fetchOption = {
1663    fetchColumns: [],
1664    predicates: predicates
1665  };
1666  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1667  await fetchResult.getFirstObject();
1668  if (fetchResult.isAfterLast()) {
1669    fetchResult.getNextObject((err, fileAsset) => {
1670      if (fileAsset != undefined) {
1671        console.info('fileAsset displayName: ', fileAsset.displayName);
1672      } else {
1673        console.error("fileAsset failed with err: " + err);
1674      }
1675    });
1676  }
1677}
1678```
1679
1680### getNextObject
1681
1682 getNextObject(): Promise&lt;T&gt;
1683
1684获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。
1685
1686**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1687
1688**返回值:**
1689
1690| 类型                                    | 说明              |
1691| --------------------------------------- | ----------------- |
1692| Promise&lt;T&gt; | 返回结果集中下一个对象 |
1693
1694**示例**:
1695
1696```ts
1697import dataSharePredicates from '@ohos.data.dataSharePredicates';
1698
1699async function example() {
1700  console.info('getNextObjectDemo');
1701  let predicates = new dataSharePredicates.DataSharePredicates();
1702  let fetchOption = {
1703    fetchColumns: [],
1704    predicates: predicates
1705  };
1706  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1707  await fetchResult.getFirstObject();
1708  if (fetchResult.isAfterLast()) {
1709    let fileAsset = await fetchResult.getNextObject();
1710    console.info('fileAsset displayName: ', fileAsset.displayName);
1711  }
1712}
1713```
1714
1715### getLastObject
1716
1717getLastObject(callback: AsyncCallback&lt;T&gt;): void
1718
1719获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。
1720
1721**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1722
1723**参数**:
1724
1725| 参数名   | 类型                                          | 必填 | 说明                        |
1726| -------- | --------------------------------------------- | ---- | --------------------------- |
1727| callback | AsyncCallback&lt;T&gt; | 是   | 异步返回结果集中最后一个的回调 |
1728
1729**示例**:
1730
1731```ts
1732import dataSharePredicates from '@ohos.data.dataSharePredicates';
1733
1734async function example() {
1735  console.info('getLastObjectDemo');
1736  let predicates = new dataSharePredicates.DataSharePredicates();
1737  let fetchOption = {
1738    fetchColumns: [],
1739    predicates: predicates
1740  };
1741  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1742  fetchResult.getLastObject((err, fileAsset) => {
1743    if (fileAsset != undefined) {
1744      console.info('fileAsset displayName: ', fileAsset.displayName);
1745    } else {
1746      console.error("fileAsset failed with err: " + err);
1747    }
1748  });
1749}
1750```
1751
1752### getLastObject
1753
1754getLastObject(): Promise&lt;T&gt;
1755
1756获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。
1757
1758**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1759
1760**返回值:**
1761
1762| 类型                                    | 说明              |
1763| --------------------------------------- | ----------------- |
1764| Promise&lt;T&gt; | 返回结果集中最后一个对象 |
1765
1766**示例**:
1767
1768```ts
1769import dataSharePredicates from '@ohos.data.dataSharePredicates';
1770
1771async function example() {
1772  console.info('getLastObjectDemo');
1773  let predicates = new dataSharePredicates.DataSharePredicates();
1774  let fetchOption = {
1775    fetchColumns: [],
1776    predicates: predicates
1777  };
1778  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1779  let fileAsset = await fetchResult.getLastObject();
1780  console.info('fileAsset displayName: ', fileAsset.displayName);
1781}
1782```
1783
1784### getPositionObject
1785
1786getPositionObject(index: number, callback: AsyncCallback&lt;T&gt;): void
1787
1788获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。
1789
1790**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1791
1792**参数**:
1793
1794| 参数名       | 类型                                       | 必填   | 说明                 |
1795| -------- | ---------------------------------------- | ---- | ------------------ |
1796| index    | number                                   | 是    | 要获取的文件的索引,从0开始     |
1797| callback | AsyncCallback&lt;T&gt; | 是    | 异步返回指定索引的文件资产的回调 |
1798
1799**示例**:
1800
1801```ts
1802import dataSharePredicates from '@ohos.data.dataSharePredicates';
1803
1804async function example() {
1805  console.info('getPositionObjectDemo');
1806  let predicates = new dataSharePredicates.DataSharePredicates();
1807  let fetchOption = {
1808    fetchColumns: [],
1809    predicates: predicates
1810  };
1811  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1812  fetchResult.getPositionObject(0, (err, fileAsset) => {
1813    if (fileAsset != undefined) {
1814      console.info('fileAsset displayName: ', fileAsset.displayName);
1815    } else {
1816      console.error("fileAsset failed with err: " + err);
1817    }
1818  });
1819}
1820```
1821
1822### getPositionObject
1823
1824getPositionObject(index: number): Promise&lt;T&gt;
1825
1826获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。
1827
1828**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1829
1830**参数**:
1831
1832| 参数名    | 类型     | 必填   | 说明             |
1833| ----- | ------ | ---- | -------------- |
1834| index | number | 是    | 要获取的文件的索引,从0开始 |
1835
1836**返回值:**
1837
1838| 类型                                    | 说明              |
1839| --------------------------------------- | ----------------- |
1840| Promise&lt;T&gt; | 返回指定索引的文件资产的对象 |
1841
1842**示例**:
1843
1844```ts
1845import dataSharePredicates from '@ohos.data.dataSharePredicates';
1846
1847async function example() {
1848  console.info('getPositionObjectDemo');
1849  let predicates = new dataSharePredicates.DataSharePredicates();
1850  let fetchOption = {
1851    fetchColumns: [],
1852    predicates: predicates
1853  };
1854  let fetchResult = await mgr.getPhotoAssets(fetchOption);
1855  let fileAsset = await fetchResult.getPositionObject(0);
1856  console.info('fileAsset displayName: ', fileAsset.displayName);
1857}
1858```
1859
1860## Album
1861
1862实体相册
1863
1864### 属性
1865
1866**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
1867
1868| 名称           | 类型    | 可读   | 可写   | 说明      |
1869| ------------ | ------ | ---- | ---- | ------- |
1870| albumName | string | 是    | 是    | 相册名称    |
1871| albumUri | string | 是    | 否    | 相册Uri   |
1872| dateModified | number | 是    | 否    | 修改日期    |
1873| count | number | 是    | 否    | 相册中文件数量 |
1874| coverUri | string | 是    | 否    | 封面文件Uri
1875
1876### getPhotoAssets
1877
1878getPhotoAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;FileAsset&gt;&gt;): void;
1879
1880获取相册中的文件。该方法使用callback形式来返回文件。
1881
1882**需要权限**:ohos.permission.READ_IMAGEVIDEO
1883
1884**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1885
1886**参数**:
1887
1888| 参数名   | 类型                      | 必填 | 说明       |
1889| -------- | ------------------------- | ---- | ---------- |
1890| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
1891| callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是   | callback 返回图片和视频数据结果集|
1892
1893**示例**:
1894
1895```ts
1896import dataSharePredicates from '@ohos.data.dataSharePredicates';
1897
1898async function example() {
1899  console.info('albumGetFileAssetsDemoCallback');
1900
1901  let predicates = new dataSharePredicates.DataSharePredicates();
1902  let albumFetchOptions = {
1903    predicates: predicates
1904  };
1905  let fetchOption = {
1906    fetchColumns: [],
1907    predicates: predicates
1908  };
1909  const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
1910  const album = await albumList.getFirstObject();
1911  album.getPhotoAssets(fetchOption, (err, albumFetchResult) => {
1912    if (albumFetchResult != undefined) {
1913      console.info("album getPhotoAssets successfully, getCount: " + albumFetchResult.getCount());
1914    } else {
1915      console.error("album getPhotoAssets failed with error: " + err);
1916    }
1917  });
1918}
1919```
1920
1921### getPhotoAssets
1922
1923getPhotoAssets(options: FetchOptions): Promise&lt;FetchResult&lt;FileAsset&gt;&gt;;
1924
1925获取相册中的文件。该方法使用Promise来返回文件。
1926
1927**需要权限**:ohos.permission.READ_IMAGEVIDEO
1928
1929**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1930
1931**参数**:
1932
1933| 参数名   | 类型                      | 必填 | 说明       |
1934| -------- | ------------------------- | ---- | ---------- |
1935| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
1936| Promise | [FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt; | 是   | 图片和视频数据结果集 |
1937
1938**示例**:
1939
1940```ts
1941import dataSharePredicates from '@ohos.data.dataSharePredicates';
1942
1943async function example() {
1944  console.info('albumGetFileAssetsDemoPromise');
1945
1946  let predicates = new dataSharePredicates.DataSharePredicates();
1947  let albumFetchOptions = {
1948    predicates: predicates
1949  };
1950  let fetchOption = {
1951    fetchColumns: [],
1952    predicates: predicates
1953  };
1954  const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
1955  const album = await albumList.getFirstObject();
1956  album.getPhotoAssets(fetchOption).then((albumFetchResult) => {
1957    console.info("album getFileAssets successfully, getCount: " + albumFetchResult.getCount());
1958  }).catch((err) => {
1959    console.error("album getFileAssets failed with error: " + err);
1960  });
1961}
1962```
1963
1964### commitModify
1965
1966commitModify(callback: AsyncCallback&lt;void&gt;): void;
1967
1968更新相册属性修改到数据库中。
1969
1970**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1971
1972**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
1973
1974**参数**:
1975
1976| 参数名   | 类型                      | 必填 | 说明       |
1977| -------- | ------------------------- | ---- | ---------- |
1978| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |
1979
1980**示例**:
1981
1982```ts
1983import dataSharePredicates from '@ohos.data.dataSharePredicates';
1984
1985async function example() {
1986  console.info('albumCommitModifyDemo');
1987  let predicates = new dataSharePredicates.DataSharePredicates();
1988  let albumFetchOptions = {
1989    predicates: predicates
1990  };
1991  const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
1992  const album = await albumList.getFirstObject();
1993  album.albumName = 'hello';
1994  album.commitModify((err) => {
1995    if (err != undefined) {
1996      console.error("commitModify failed with error: " + err);
1997    } else {
1998      console.info("commitModify successfully");
1999    }
2000  });
2001}
2002```
2003
2004### commitModify
2005
2006commitModify(): Promise&lt;void&gt;;
2007
2008更新相册属性修改到数据库中。
2009
2010**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2011
2012**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
2013
2014**返回值:**
2015
2016| 类型                  | 说明           |
2017| ------------------- | ------------ |
2018| Promise&lt;void&gt; | Promise调用返回空 |
2019
2020**示例**:
2021
2022```ts
2023import dataSharePredicates from '@ohos.data.dataSharePredicates';
2024
2025async function example() {
2026  console.info('albumCommitModifyDemo');
2027  let predicates = new dataSharePredicates.DataSharePredicates();
2028  let albumFetchOptions = {
2029    predicates: predicates
2030  };
2031  try {
2032    var albumList = await mgr.getPhotoAlbums(albumFetchOptions);
2033  } catch (err) {
2034    console.error('getPhotoAlbums failed. message = ', err);
2035  }
2036  const album = await albumList.getFirstObject();
2037  album.albumName = 'hello';
2038  album.commitModify().then(() => {
2039    console.info("commitModify successfully");
2040  }).catch((err) => {
2041    console.error("commitModify failed with error: " + err);
2042  });
2043}
2044```
2045
2046## PrivateAlbum
2047
2048系统相册。
2049
2050### 属性
2051
2052**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2053
2054| 名称           | 类型    | 可读   | 可写   | 说明      |
2055| ------------ | ------ | ---- | ---- | ------- |
2056| albumName | string | 是    | 是    | 相册名称    |
2057| albumUri | string | 是    | 否    | 相册Uri   |
2058| dateModified | number | 是    | 否    | 修改日期    |
2059| count | number | 是    | 否    | 相册中文件数量 |
2060| coverUri | string | 是    | 否    | 封面文件Uri
2061
2062### getPhotoAssets
2063
2064getPhotoAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;FileAsset&gt;&gt;): void;
2065
2066获取系统相册中的文件。该方法使用callback形式来返回文件。
2067
2068**需要权限**:ohos.permission.READ_IMAGEVIDEO
2069
2070**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
2071
2072**参数**:
2073
2074| 参数名   | 类型                      | 必填 | 说明       |
2075| -------- | ------------------------- | ---- | ---------- |
2076| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
2077| callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是   | callback返回图片和视频数据结果集 |
2078
2079**示例**:
2080
2081```ts
2082import dataSharePredicates from '@ohos.data.dataSharePredicates';
2083
2084async function example() {
2085  console.info('privateAlbumGetFileAssetsDemoCallback');
2086  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
2087  let predicates = new dataSharePredicates.DataSharePredicates();
2088  let fetchOption = {
2089    fetchColumns: [],
2090    predicates: predicates
2091  };
2092  const trashAlbum = await albumList.getFirstObject();
2093  trashAlbum.getPhotoAssets(fetchOption, (err, fetchResult) => {
2094    if (fetchResult != undefined) {
2095      let count = fetchResult.getCount();
2096      console.info('fetchResult.count = ', count);
2097    } else {
2098      console.error('getFileAssets failed, message = ', err);
2099    }
2100  });
2101}
2102
2103```
2104
2105### getPhotoAssets
2106
2107getPhotoAssets(options: FetchOptions): Promise&lt;FetchResult&lt;FileAsset&gt;&gt;;
2108
2109获取系统相册中的文件。该方法使用Promise来返回文件。
2110
2111**需要权限**:ohos.permission.READ_IMAGEVIDEO
2112
2113**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
2114
2115**参数**:
2116
2117| 参数名   | 类型                      | 必填 | 说明       |
2118| -------- | ------------------------- | ---- | ---------- |
2119| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
2120
2121**返回值:**
2122
2123| 类型                                    | 说明              |
2124| --------------------------------------- | ----------------- |
2125| Promise:[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;| 图片和视频数据结果集 |
2126
2127**示例**:
2128
2129```ts
2130import dataSharePredicates from '@ohos.data.dataSharePredicates';
2131
2132async function example() {
2133  console.info('privateAlbumGetFileAssetsDemoPromise');
2134  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
2135  let predicates = new dataSharePredicates.DataSharePredicates();
2136  let fetchOption = {
2137    fetchColumns: [],
2138    predicates: predicates
2139  };
2140  const trashAlbum = await albumList.getFirstObject();
2141  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
2142  let count = fetchResult.getCount();
2143  console.info('fetchResult.count = ', count);
2144}
2145```
2146
2147### delete
2148
2149delete(uri: string, callback: AsyncCallback&lt;void&gt;): void;
2150
2151删除系统相册中的文件。
2152
2153**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEOohos.permission.READ_AUDIOohos.permission.WRITE_AUDIO
2154
2155**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
2156
2157**参数**:
2158
2159| 参数名   | 类型                      | 必填 | 说明       |
2160| -------- | ------------------------- | ---- | ---------- |
2161| uri | string | 是   | 相册uri |
2162| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |
2163
2164**示例**:
2165
2166```ts
2167import dataSharePredicates from '@ohos.data.dataSharePredicates';
2168
2169async function example() {
2170  console.info('privateAlbumDeleteCallback');
2171  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
2172  let predicates = new dataSharePredicates.DataSharePredicates();
2173  let fetchOption = {
2174    fetchColumns: [],
2175    predicates: predicates
2176  };
2177  const trashAlbum = await albumList.getFirstObject();
2178  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
2179  const fileAsset = await fetchResult.getFirstObject();
2180  let deleteFileUri = fileAsset.uri;
2181  trashAlbum.delete(deleteFileUri, (err) => {
2182    if (err != undefined) {
2183      console.error('trashAlbum.delete failed, message = ', err);
2184    } else {
2185      console.info('trashAlbum.delete successfully');
2186    }
2187  });
2188}
2189```
2190
2191### delete
2192
2193delete(uri: string): Promise&lt;void&gt;;
2194
2195删除系统相册中的文件。
2196
2197**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEOohos.permission.READ_AUDIOohos.permission.WRITE_AUDIO
2198
2199**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
2200
2201**参数**:
2202
2203| 参数名   | 类型                      | 必填 | 说明       |
2204| -------- | ------------------------- | ---- | ---------- |
2205| uri | string | 是   | 相册uri |
2206
2207**返回值:**
2208
2209| 类型                                    | 说明              |
2210| --------------------------------------- | ----------------- |
2211| Promise&lt;void&gt;| 回调返回空 |
2212
2213**示例**:
2214
2215```ts
2216import dataSharePredicates from '@ohos.data.dataSharePredicates';
2217
2218async function example() {
2219  console.info('privateAlbumDeleteDemoPromise');
2220  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
2221  let predicates = new dataSharePredicates.DataSharePredicates();
2222  let fetchOption = {
2223    fetchColumns: [],
2224    predicates: predicates
2225  };
2226  const trashAlbum = await albumList.getFirstObject();
2227  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
2228  const fileAsset = await fetchResult.getFirstObject();
2229  let deleteFileUri = fileAsset.uri;
2230  trashAlbum.delete(deleteFileUri).then(() => {
2231    console.info('trashAlbum.delete successfully');
2232  }).catch((err) => {
2233    console.error('trashAlbum.delete failed, message = ', err);
2234  });
2235}
2236```
2237
2238### recover
2239
2240recover(uri: string, callback: AsyncCallback&lt;void&gt;): void;
2241
2242恢复系统相册中的文件。
2243
2244**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEOohos.permission.READ_AUDIOohos.permission.WRITE_AUDIO
2245
2246**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
2247
2248**参数**:
2249
2250| 参数名   | 类型                      | 必填 | 说明       |
2251| -------- | ------------------------- | ---- | ---------- |
2252| uri | string | 是   | 相册uri |
2253| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |
2254
2255**示例**:
2256
2257```ts
2258import dataSharePredicates from '@ohos.data.dataSharePredicates';
2259
2260async function example() {
2261  console.info('privateAlbumRecoverDemoCallback');
2262  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
2263  let predicates = new dataSharePredicates.DataSharePredicates();
2264  let fetchOption = {
2265    fetchColumns: [],
2266    predicates: predicates
2267  };
2268  const trashAlbum = await albumList.getFirstObject();
2269  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
2270  const fileAsset = await fetchResult.getFirstObject();
2271  let recoverFileUri = fileAsset.uri;
2272  trashAlbum.recover(recoverFileUri, (err) => {
2273    if (err != undefined) {
2274      console.error('trashAlbum.recover failed, message = ', err);
2275    } else {
2276      console.info('trashAlbum.recover successfully');
2277    }
2278  });
2279}
2280```
2281
2282### recover
2283
2284recover(uri: string): Promise&lt;void&gt;;
2285
2286恢复系统相册中的文件。
2287
2288**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEOohos.permission.READ_AUDIOohos.permission.WRITE_AUDIO
2289
2290**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
2291
2292**参数**:
2293
2294| 参数名   | 类型                      | 必填 | 说明       |
2295| -------- | ------------------------- | ---- | ---------- |
2296| uri | string | 是   | 相册uri |
2297
2298**返回值:**
2299
2300| 类型                                    | 说明              |
2301| --------------------------------------- | ----------------- |
2302| Promise&lt;void&gt;| 回调返回空 |
2303
2304**示例**:
2305
2306```ts
2307import dataSharePredicates from '@ohos.data.dataSharePredicates';
2308
2309async function example() {
2310  console.info('privateAlbumRecoverDemoPromise');
2311  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
2312  let predicates = new dataSharePredicates.DataSharePredicates();
2313  let fetchOption = {
2314    fetchColumns: [],
2315    predicates: predicates
2316  };
2317  const trashAlbum = await albumList.getFirstObject();
2318  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
2319  const fileAsset = await fetchResult.getFirstObject();
2320  let recoverFileUri = fileAsset.uri;
2321  trashAlbum.recover(recoverFileUri).then(() => {
2322    console.info('trashAlbum.recover successfully');
2323  }).catch((err) => {
2324    console.error('trashAlbum.recover failed, message = ', err);
2325  });
2326}
2327```
2328
2329## MemberType
2330
2331成员类型。
2332
2333**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2334
2335| 名称  |  类型 |  可读  |  可写  |  说明  |
2336| ----- |  ---- |  ---- |  ---- |  ---- |
2337| number |  number | 是 | 是 | number类型 |
2338| string |  string | 是 | 是 | string类型 |
2339| boolean |  boolean | 是 | 是 | boolean类型 |
2340
2341## ChangeEvent
2342
2343变更监听的媒体文件类型。
2344
2345**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2346
2347| 名称  |  类型 |  可读  |  可写  |  说明 |
2348| ----- |  ---- |  ---- |  ---- |  ---- |
2349| deviceChange |  string | 是 | 是 |  设备 |
2350| albumChange |  string | 是 | 是 |  相册 |
2351| imageChange |  string | 是 | 是 |  图片 |
2352| audioChange |  string | 是 | 是 |  音频 |
2353| videoChange |  string | 是 | 是 |  视频 |
2354| remoteFileChange |  string | 是 | 是 |  远程文件 |
2355
2356## PeerInfo
2357
2358注册设备的信息。
2359
2360**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.DistributedCore
2361
2362| 名称       | 类型                       | 可读 | 可写 | 说明             |
2363| ---------- | -------------------------- | ---- | ---- | ---------------- |
2364| deviceName | string                     | 是   | 否   | 注册设备的名称   |
2365| networkId  | string                     | 是   | 否   | 注册设备的网络ID |
2366| isOnline   | boolean                    | 是   | 否   | 是否在线         |
2367
2368## FileType
2369
2370枚举,媒体文件类型。
2371
2372**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2373
2374| 名称  |  值 |  说明 |
2375| ----- |  ---- |  ---- |
2376| IMAGE |  1 |  图片 |
2377| VIDEO |  2 |  视频 |
2378| AUDIO |  3 |  音频 |
2379
2380## PrivateAlbumType
2381
2382枚举,系统相册类型。
2383
2384**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2385
2386| 名称    |  值 |   说明   |
2387| -----   |  ----  |   ----  |
2388| TYPE_FAVORITE |  0 |  收藏夹相册 |
2389| TYPE_TRASH |  1 |  回收站相册 |
2390
2391## AudioKey
2392
2393枚举,音频文件关键信息。
2394
2395**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2396
2397| 名称          |   值              | 说明                                                       |
2398| ------------- | ------------------- | ---------------------------------------------------------- |
2399| URI           | uri                 | 文件uri                                                   |
2400| DISPLAY_NAME  | display_name        | 显示名字                                                   |
2401| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
2402| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
2403| TITLE         | title               | 文件标题                                                   |
2404| ARTIST        | artist              | 作者                                                   |
2405| AUDIOALBUM    | audio_album         | 专辑                                                   |
2406| DURATION      | duration            | 持续时间(单位:毫秒)                                    |
2407| FAVORITE      | favorite            | 收藏                                                   |
2408
2409## ImageVideoKey
2410
2411枚举,图片和视频文件关键信息。
2412
2413**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2414
2415| 名称          | 值              | 说明                                                       |
2416| ------------- | ------------------- | ---------------------------------------------------------- |
2417| URI           | uri                 | 文件uri                                                   |
2418| FILE_TYPE     | file_type           | 媒体文件类型                                              |
2419| DISPLAY_NAME  | display_name        | 显示名字                                                   |
2420| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
2421| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
2422| TITLE         | title               | 文件标题                                                   |
2423| DURATION      | duration            | 持续时间(单位:毫秒)                                    |
2424| WIDTH         | width               | 图片宽度(单位:像素)                                    |
2425| HEIGHT        | height              | 图片高度(单位:像素)                                      |
2426| DATE_TAKEN    | date_taken          | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)                |
2427| ORIENTATION   | orientation         | 图片文件的方向                                             |
2428| FAVORITE      | favorite            | 收藏                                                    |
2429
2430## AlbumKey
2431
2432枚举,相册关键信息。
2433
2434**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2435
2436| 名称          | 值              | 说明                                                       |
2437| ------------- | ------------------- | ---------------------------------------------------------- |
2438| URI           | uri                 | 相册uri                                                   |
2439| FILE_TYPE     | file_type           | 媒体文件类型                                              |
2440| ALBUM_NAME    | album_name          | 相册名字                                                   |
2441| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
2442| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
2443
2444## FetchOptions
2445
2446检索条件。
2447
2448**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2449
2450| 名称                   | 类型                | 可读 | 可写 | 说明                                              |
2451| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ |
2452| fetchColumns           | Array&lt;string&gt; | 是   | 是   | 检索条件,指定列名查询,如果该参数为空时默认查询uri、name、fileType。示例:<br />fetchColumns: "uri"|
2453| predicates           | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是   | 是   | 谓词查询,显示过滤条件 |
2454
2455## AlbumFetchOptions
2456
2457相册检索条件。
2458
2459**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
2460
2461| 名称                   | 类型                | 可读 | 可写 | 说明                                              |
2462| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ |
2463| predicates           | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是   | 是   | 谓词查询,显示过滤条件 |
2464