js-apis-userFileManager.md 87.4 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.filemanagement.userFileManager (用户数据管理)
Y
yangbo 已提交
2

Z
zhang-daiyue 已提交
3 4
该模块提供用户数据管理能力,包括访问、修改用户等用户公共媒体数据信息等常用功能。

zyjhandsome's avatar
zyjhandsome 已提交
5
> **说明:**
Z
zengyawen 已提交
6 7 8
>
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口为系统接口。
Y
yangbo 已提交
9 10

## 导入模块
W
wangqinxiao 已提交
11

Z
zhang-daiyue 已提交
12 13
```ts
import userFileManager from '@ohos.filemanagement.userFileManager';
Y
yangbo 已提交
14 15 16 17 18 19 20 21 22
```

## userFileManager.getUserFileMgr

getUserFileMgr(context: Context): UserFileManager

获取用户数据管理模块的实例,用于访问和修改用户等用户公共媒体数据信息(如音频、视频、图片、文档等)。

**模型约束:** 此接口仅可在Stage模型下使用。
zyjhandsome's avatar
zyjhandsome 已提交
23

Y
yangbo 已提交
24 25
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zengyawen 已提交
26
**参数:**
Y
yangbo 已提交
27 28 29

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
H
huweiqi 已提交
30
| context | [Context](js-apis-inner-app-context.md) | 是   | 传入Ability实例的Context |
Y
yangbo 已提交
31 32 33 34 35 36 37 38 39 40

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
| [UserFileManager](#userfilemanager) | 媒体库实例 |

**示例:**

```ts
41
//此处获取的userFileManager实例mgr为全局对象,后续使用到mgr的地方默认为使用此处获取的对象,如未添加此段代码报mgr未定义的错误请自行添加
Y
yangbo 已提交
42
const context = getContext(this);
H
huweiqi 已提交
43
let mgr = userFileManager.getUserFileMgr(context);
Y
yangbo 已提交
44
```
W
wangqinxiao 已提交
45

Y
yangbo 已提交
46 47
## UserFileManager

Z
zhang-daiyue 已提交
48 49 50 51 52
### getPhotoAssets

getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void;

获取图片和视频资源,使用callback方式返回结果。
Y
yangbo 已提交
53 54 55

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
56 57
**需要权限**:ohos.permission.READ_IMAGEVIDEO

Y
yangbo 已提交
58 59 60 61
**参数:**

| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
Z
zhang-daiyue 已提交
62 63
| options  | [FetchOptions](#fetchoptions)        | 是   | 图片和视频检索选项              |
| callback |  AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是   | callback 返回图片和视频检索结果集 |
Y
yangbo 已提交
64 65 66 67

**示例:**

```ts
H
huweiqi 已提交
68 69
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
70 71 72 73 74 75 76 77 78 79 80 81 82
async function example() {
  console.info('getPhotoAssets');
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };

  mgr.getPhotoAssets(fetchOptions, async (err, fetchResult) => {
    if (fetchResult != undefined) {
      console.info('fetchResult success');
      let fileAsset = await fetchResult.getFirstObject();
      if (fileAsset != undefined) {
H
huweiqi 已提交
83
        console.info("fileAsset.displayName : " + fileAsset.displayName);
Z
zhang-daiyue 已提交
84 85
      }
    } else {
H
huweiqi 已提交
86
      console.error('fetchResult fail' + err);
Z
zhang-daiyue 已提交
87
    }
H
huweiqi 已提交
88
  });
Y
yangbo 已提交
89 90 91
}
```

Z
zhang-daiyue 已提交
92 93 94
### getPhotoAssets

getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;
Y
yangbo 已提交
95

Z
zhang-daiyue 已提交
96
获取图片和视频资源,使用Promise方式返回结果。
Y
yangbo 已提交
97 98 99

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
100 101
**需要权限**:ohos.permission.READ_IMAGEVIDEO

Y
yangbo 已提交
102 103
**参数:**

Z
zhang-daiyue 已提交
104 105 106
| 参数名  | 类型                | 必填 | 说明             |
| ------- | ------------------- | ---- | ---------------- |
| options | [FetchOptions](#fetchoptions)   | 是   | 图片和视频检索选项     |
Y
yangbo 已提交
107

Z
zengyawen 已提交
108
**返回值:**
Y
yangbo 已提交
109

Z
zhang-daiyue 已提交
110 111 112
| 类型                        | 说明           |
| --------------------------- | -------------- |
| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 图片和视频数据结果集 |
Y
yangbo 已提交
113 114 115 116

**示例:**

```ts
H
huweiqi 已提交
117 118
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
119 120 121 122 123 124 125 126
async function example() {
  console.info('getPhotoAssets');
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
127
    let fetchResult = await mgr.getPhotoAssets(fetchOptions);
Z
zhang-daiyue 已提交
128 129 130 131 132 133
    if (fetchResult != undefined) {
      console.info('fetchResult success');
      let fileAsset = await fetchResult.getFirstObject();
      if (fileAsset != undefined) {
        console.info("fileAsset.displayName :" + fileAsset.displayName);
      }
Y
yangbo 已提交
134
    }
Z
zhang-daiyue 已提交
135
  } catch (err) {
H
huweiqi 已提交
136
    console.error('getPhotoAssets failed, message = ', err);
Z
zhang-daiyue 已提交
137
  }
Y
yangbo 已提交
138 139
}
```
Z
zengyawen 已提交
140

Z
zhang-daiyue 已提交
141
### createPhotoAsset
Y
yangbo 已提交
142

Z
zhang-daiyue 已提交
143
createPhotoAsset(displayName: string, albumUri: string, callback: AsyncCallback<FileAsset>): void;
Y
yangbo 已提交
144

Z
zhang-daiyue 已提交
145
创建图片或视频资源,使用callback方式返回结果。
Y
yangbo 已提交
146 147 148

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
149
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
Y
yangbo 已提交
150 151 152 153 154

**参数:**

| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
Z
zhang-daiyue 已提交
155 156 157
| displayName  | string        | 是   | 创建的图片或者视频文件名              |
| albumUri  | string        | 是   | 创建的图片或者视频所在相册的uri              |
| callback |  AsyncCallback<[FileAsset](#fileasset)> | 是   | callback 返回创建的图片和视频结果 |
Y
yangbo 已提交
158 159 160 161

**示例:**

```ts
H
huweiqi 已提交
162 163
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
164
async function example() {
H
huweiqi 已提交
165
  console.info('createPhotoAssetDemo');
Z
zhang-daiyue 已提交
166 167 168 169
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    predicates: predicates
  };
H
huweiqi 已提交
170 171
  let albums = await mgr.getPhotoAlbums(fetchOptions);
  let album = await albums.getFirstObject();
H
huweiqi 已提交
172 173
  let testFileName = "testFile" + Date.now() + ".jpg";
  mgr.createPhotoAsset(testFileName, album.albumUri, (err, fileAsset) => {
Z
zhang-daiyue 已提交
174 175 176 177
    if (fileAsset != undefined) {
      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
      console.info('createPhotoAsset successfully');
    } else {
H
huweiqi 已提交
178
      console.error('createPhotoAsset failed, message = ', err);
Z
zhang-daiyue 已提交
179
    }
H
huweiqi 已提交
180
  });
Z
zhang-daiyue 已提交
181 182
}
```
Y
yangbo 已提交
183

Z
zhang-daiyue 已提交
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
### createPhotoAsset

createPhotoAsset(displayName: string, callback: AsyncCallback<FileAsset>): void;

创建图片或视频资源,使用callback方式返回结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**需要权限**:ohos.permission.WRITE_IMAGEVIDEO

**参数:**

| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| displayName  | string        | 是   | 创建的图片或者视频文件名              |
| callback |  AsyncCallback<[FileAsset](#fileasset)> | 是   | callback 返回创建的图片和视频结果 |

**示例:**

```ts
async function example() {
H
huweiqi 已提交
205
  console.info('createPhotoAssetDemo');
H
huweiqi 已提交
206 207
  let testFileName = "testFile" + Date.now() + ".jpg";
  mgr.createPhotoAsset(testFileName, (err, fileAsset) => {
Z
zhang-daiyue 已提交
208 209 210 211
    if (fileAsset != undefined) {
      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
      console.info('createPhotoAsset successfully');
    } else {
H
huweiqi 已提交
212
      console.error('createPhotoAsset failed, message = ', err);
Z
zhang-daiyue 已提交
213
    }
H
huweiqi 已提交
214
  });
Y
yangbo 已提交
215 216 217
}
```

Z
zhang-daiyue 已提交
218
### createPhotoAsset
Y
yangbo 已提交
219

H
huweiqi 已提交
220
createPhotoAsset(displayName: string, albumUri?: string): Promise<FileAsset>;
Y
yangbo 已提交
221

Z
zhang-daiyue 已提交
222
创建图片或视频资源,使用Promise方式返回结果。
Y
yangbo 已提交
223 224 225

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
226
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
Y
yangbo 已提交
227 228 229

**参数:**

Z
zhang-daiyue 已提交
230 231 232 233
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| displayName  | string        | 是   | 创建的图片或者视频文件名              |
| albumUri  | string        | 否   | 创建的图片或者视频所在相册的uri              |
Y
yangbo 已提交
234

Z
zengyawen 已提交
235
**返回值:**
Y
yangbo 已提交
236 237 238

| 类型                        | 说明           |
| --------------------------- | -------------- |
Z
zhang-daiyue 已提交
239
| Promise<[FileAsset](#fileasset)> | 返回创建的图片和视频结果 |
Y
yangbo 已提交
240 241 242 243

**示例:**

```ts
Z
zhang-daiyue 已提交
244
async function example() {
H
huweiqi 已提交
245
  console.info('createPhotoAssetDemo');
Z
zhang-daiyue 已提交
246
  try {
H
huweiqi 已提交
247
    let testFileName = "testFile" + Date.now() + ".jpg";
H
huweiqi 已提交
248
    let fileAsset = await mgr.createPhotoAsset(testFileName);
Z
zhang-daiyue 已提交
249 250 251
    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
    console.info('createPhotoAsset successfully');
  } catch (err) {
H
huweiqi 已提交
252
    console.error('createPhotoAsset failed, message = ', err);
Z
zhang-daiyue 已提交
253
  }
Y
yangbo 已提交
254 255 256
}
```

Z
zhang-daiyue 已提交
257
### getPhotoAlbums
Y
yangbo 已提交
258

Z
zhang-daiyue 已提交
259
getPhotoAlbums(options: AlbumFetchOptions, callback: AsyncCallback<FetchResult<Album>>): void;
Y
yangbo 已提交
260

Z
zhang-daiyue 已提交
261
获取相册,使用callback方式返回结果。
Y
yangbo 已提交
262 263 264

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
265 266
**需要权限**:ohos.permission.READ_IMAGEVIDEO

Y
yangbo 已提交
267 268
**参数:**

Z
zhang-daiyue 已提交
269 270 271 272
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| options  | [AlbumFetchOptions](#albumfetchoptions)        | 是   | 相册检索选项              |
| callback |  AsyncCallback<[FetchResult](#fetchresult)<[Album](#album)>> | 是   | callback 返回相册检索结果 |
Y
yangbo 已提交
273 274 275 276

**示例:**

```ts
H
huweiqi 已提交
277 278
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
279
async function example() {
H
huweiqi 已提交
280
  console.info('getPhotoAlbumsDemo');
Z
zhang-daiyue 已提交
281 282 283 284 285 286 287 288 289 290 291 292
  let predicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions = {
    predicates: predicates
  };

  mgr.getPhotoAlbums(albumFetchOptions, (err, fetchResult) => {
    if (fetchResult != undefined) {
      console.info('albums.count = ' + fetchResult.getCount());
      fetchResult.getFirstObject((err, album) => {
        if (album != undefined) {
          console.info('first album.albumName = ' + album.albumName);
        } else {
H
huweiqi 已提交
293
          console.error('album is undefined, err = ', err);
Z
zhang-daiyue 已提交
294
        }
H
huweiqi 已提交
295
      });
H
huweiqi 已提交
296
    } else {
H
huweiqi 已提交
297
      console.error('getPhotoAlbums fail, message = ', err);
Z
zhang-daiyue 已提交
298
    }
H
huweiqi 已提交
299
  });
Y
yangbo 已提交
300 301 302
}
```

Z
zhang-daiyue 已提交
303
### getPhotoAlbums
Y
yangbo 已提交
304

Z
zhang-daiyue 已提交
305
getPhotoAlbums(options: AlbumFetchOptions): Promise<FetchResult<Album>>;
Y
yangbo 已提交
306

307
获取相册,使用Promise方式返回结果。
Y
yangbo 已提交
308 309 310

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
311 312
**需要权限**:ohos.permission.READ_IMAGEVIDEO

Y
yangbo 已提交
313 314
**参数:**

Z
zhang-daiyue 已提交
315 316 317 318
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| options  | [AlbumFetchOptions](#albumfetchoptions)        | 是   | 相册检索选项              |

Z
zengyawen 已提交
319
**返回值:**
Z
zhang-daiyue 已提交
320 321 322 323

| 类型                        | 说明           |
| --------------------------- | -------------- |
| Promise<[FetchResult](#fetchresult)<[Album](#album)>> | Promise 返回相册检索结果 |
Y
yangbo 已提交
324 325 326 327

**示例:**

```ts
H
huweiqi 已提交
328 329
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
330
async function example() {
H
huweiqi 已提交
331
  console.info('getPhotoAlbumsDemo');
Z
zhang-daiyue 已提交
332 333 334 335 336 337 338 339 340 341
  let predicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions = {
    predicates: predicates
  };
  try {
    let fetchResult = await mgr.getPhotoAlbums(albumFetchOptions);
    console.info('album.count = ' + fetchResult.getCount());
    const album = await fetchResult.getFirstObject();
    console.info('first album.albumName = ' + album.albumName);
  } catch (err) {
H
huweiqi 已提交
342
    console.error('getPhotoAlbums fail, message = ' + err);
Z
zhang-daiyue 已提交
343
  }
Y
yangbo 已提交
344 345 346
}
```

Z
zhang-daiyue 已提交
347
### getPrivateAlbum
Y
yangbo 已提交
348

Z
zhang-daiyue 已提交
349
getPrivateAlbum(type: PrivateAlbumType, callback: AsyncCallback<FetchResult<PrivateAlbum>>): void;
Y
yangbo 已提交
350

Z
zhang-daiyue 已提交
351
获取系统相册,使用 callback 方式返回系统相册的数组。
李云帆 已提交
352

Y
yangbo 已提交
353 354
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
355
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
356 357 358

**参数:**

Z
zhang-daiyue 已提交
359 360 361 362
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| type  | [PrivateAlbumType](#privatealbumtype)        | 是   | 系统相册类型              |
| callback |  AsyncCallback<[FetchResult](#fetchresult)<[PrivateAlbum](#privatealbum)>> | 是   | callback 返回相册检索结果 |
Y
yangbo 已提交
363 364 365 366

**示例:**

```ts
Z
zhang-daiyue 已提交
367
async function example() {
H
huweiqi 已提交
368
  console.info('getPrivateAlbumDemo');
Z
zhang-daiyue 已提交
369 370 371 372 373
  mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH, async (err, fetchResult) => {
    if (fetchResult != undefined) {
      let trashAlbum = await fetchResult.getFirstObject();
      console.info('first album.albumName = ' + trashAlbum.albumName);
    } else {
H
huweiqi 已提交
374
      console.error('getPrivateAlbum failed. message = ', err);
Z
zhang-daiyue 已提交
375 376
    }
  });
Y
yangbo 已提交
377 378 379
}
```

Z
zhang-daiyue 已提交
380
### getPrivateAlbum
Y
yangbo 已提交
381

Z
zhang-daiyue 已提交
382
getPrivateAlbum(type: PrivateAlbumType): Promise<FetchResult<PrivateAlbum>>;
Y
yangbo 已提交
383 384


Z
zhang-daiyue 已提交
385
获取系统相册,使用Promise方式返回结果。
李云帆 已提交
386

Y
yangbo 已提交
387 388
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
389
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
390 391 392

**参数:**

Z
zhang-daiyue 已提交
393 394 395
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| type  | [PrivateAlbumType](#privatealbumtype)        | 是   | 系统相册类型              |
Y
yangbo 已提交
396

Z
zengyawen 已提交
397
**返回值:**
Y
yangbo 已提交
398

Z
zhang-daiyue 已提交
399 400 401
| 类型                        | 说明           |
| --------------------------- | -------------- |
| Promise<[FetchResult](#fetchresult)<[PrivateAlbum](#privatealbum)>> | Promise 返回相册检索结果 |
Y
yangbo 已提交
402 403 404 405

**示例:**

```ts
Z
zhang-daiyue 已提交
406 407 408
async function example() {
  console.info('getPrivateAlbumDemo');
  try {
409
    let fetchResult = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
Z
zhang-daiyue 已提交
410 411 412
    let trashAlbum = await fetchResult.getFirstObject();
    console.info('first album.albumName = ' + trashAlbum.albumName);
  } catch (err) {
H
huweiqi 已提交
413
    console.error('getPrivateAlbum failed. message = ', err);
Z
zhang-daiyue 已提交
414
  }
Y
yangbo 已提交
415 416 417
}
```

Z
zhang-daiyue 已提交
418
### getAudioAssets
Y
yangbo 已提交
419

Z
zhang-daiyue 已提交
420
getAudioAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void;
Y
yangbo 已提交
421

Z
zhang-daiyue 已提交
422
获取音频文件,使用callback方式返回结果。
李云帆 已提交
423

Y
yangbo 已提交
424 425
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
426
**需要权限**:ohos.permission.READ_AUDIO
Y
yangbo 已提交
427 428 429

**参数:**

Z
zhang-daiyue 已提交
430 431 432
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| options  | [FetchOptions](#fetchoptions)        | 是   | 检索选项              |
433
| callback |  AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是   | callback 返回音频检索结果 |
Y
yangbo 已提交
434 435 436 437

**示例:**

```ts
H
huweiqi 已提交
438 439
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
440 441 442 443 444 445 446 447
async function example() {
  console.info('getAudioAssets');
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };

H
huweiqi 已提交
448
  mgr.getAudioAssets(fetchOptions, async (err, fetchResult) => {
Z
zhang-daiyue 已提交
449 450 451 452 453 454 455
    if (fetchResult != undefined) {
      console.info('fetchFileResult success');
      let fileAsset = await fetchResult.getFirstObject();
      if (fileAsset != undefined) {
        console.info("fileAsset.displayName :" + fileAsset.displayName);
      }
    } else {
H
huweiqi 已提交
456
      console.error('fetchFileResult fail' + err);
Y
yangbo 已提交
457
    }
H
huweiqi 已提交
458
  });
Y
yangbo 已提交
459 460 461
}
```

Z
zhang-daiyue 已提交
462
### getAudioAssets
Y
yangbo 已提交
463

Z
zhang-daiyue 已提交
464
getAudioAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;
Y
yangbo 已提交
465

Z
zhang-daiyue 已提交
466
获取音频文件,使用callback方式返回结果。
李云帆 已提交
467

Y
yangbo 已提交
468 469
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
470
**需要权限**:ohos.permission.READ_AUDIO
Y
yangbo 已提交
471 472 473

**参数:**

Z
zhang-daiyue 已提交
474 475 476
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| options  | [FetchOptions](#fetchoptions)        | 是   | 检索选项              |
Y
yangbo 已提交
477

Z
zengyawen 已提交
478
**返回值:**
Y
yangbo 已提交
479

Z
zhang-daiyue 已提交
480 481
| 类型                        | 说明           |
| --------------------------- | -------------- |
482
| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise 返回音频检索结果 |
Y
yangbo 已提交
483 484 485 486

**示例:**

```ts
H
huweiqi 已提交
487 488
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
489 490 491 492 493 494 495 496
async function example() {
  console.info('getAudioAssets');
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
H
huweiqi 已提交
497
    var fetchResult = await mgr.getAudioAssets(fetchOptions);
Z
zhang-daiyue 已提交
498
  } catch (err) {
H
huweiqi 已提交
499
    console.error('getAudioAssets failed, message = ', err);
Z
zhang-daiyue 已提交
500 501 502 503 504 505 506
  }

  if (fetchResult != undefined) {
    console.info('fetchFileResult success');
    let fileAsset = await fetchResult.getFirstObject();
    if (fileAsset != undefined) {
      console.info("fileAsset.displayName :" + fileAsset.displayName);
Y
yangbo 已提交
507
    }
Z
zhang-daiyue 已提交
508
  }
Y
yangbo 已提交
509 510
}
```
Z
zengyawen 已提交
511

Z
zhang-daiyue 已提交
512
### delete
Y
yangbo 已提交
513

Z
zhang-daiyue 已提交
514
delete(uri: string, callback: AsyncCallback<void>): void;
Y
yangbo 已提交
515

H
huweiqi 已提交
516
删除媒体文件,删除的文件进入到回收站。
Y
yangbo 已提交
517

Z
zhang-daiyue 已提交
518
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
519

李云帆 已提交
520
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
Y
yangbo 已提交
521

Z
zhang-daiyue 已提交
522
**参数**
Y
yangbo 已提交
523

Z
zhang-daiyue 已提交
524 525 526 527
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 媒体文件uri |
| callback | AsyncCallback<void> | 是   | 回调返回空 |
Y
yangbo 已提交
528

Z
zhang-daiyue 已提交
529
**示例**
Y
yangbo 已提交
530 531

```ts
H
huweiqi 已提交
532 533
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
534
async function example() {
H
huweiqi 已提交
535
  console.info('deleteAssetDemo');
Z
zhang-daiyue 已提交
536 537 538 539 540 541 542 543 544
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult = await mgr.getPhotoAssets(fetchOptions);
    var asset = await fetchResult.getFirstObject();
  } catch (err) {
H
huweiqi 已提交
545
    console.info('fetch failed, message =', err);
Z
zhang-daiyue 已提交
546 547 548
  }

  if (asset == undefined) {
H
huweiqi 已提交
549
    console.error('asset not exist');
Z
zhang-daiyue 已提交
550 551 552 553 554 555
    return;
  }
  mgr.delete(asset.uri, (err) => {
    if (err == undefined) {
      console.info("delete successfully");
    } else {
H
huweiqi 已提交
556
      console.error("delete failed with error: " + err);
Z
zhang-daiyue 已提交
557 558
    }
  });
Y
yangbo 已提交
559 560
}
```
Z
zengyawen 已提交
561

Z
zhang-daiyue 已提交
562
### delete
Y
yangbo 已提交
563

Z
zhang-daiyue 已提交
564
delete(uri: string): Promise<void>;
Y
yangbo 已提交
565

H
huweiqi 已提交
566
删除媒体文件,删除的文件进入到回收站。
Y
yangbo 已提交
567

Z
zhang-daiyue 已提交
568
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
569

李云帆 已提交
570 571
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
572
**参数**
Y
yangbo 已提交
573

Z
zhang-daiyue 已提交
574 575 576
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 媒体文件uri |
Y
yangbo 已提交
577

Z
zengyawen 已提交
578
**返回值:**
Y
yangbo 已提交
579

Z
zhang-daiyue 已提交
580 581 582
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
| Promise<void>| 回调返回空 |
Y
yangbo 已提交
583

Z
zhang-daiyue 已提交
584
**示例**
Y
yangbo 已提交
585 586

```ts
H
huweiqi 已提交
587 588
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
589
async function example() {
H
huweiqi 已提交
590
  console.info('deleteDemo');
Z
zhang-daiyue 已提交
591 592 593 594 595 596 597 598 599
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult = await mgr.getPhotoAssets(fetchOptions);
    var asset = await fetchResult.getFirstObject();
  } catch (err) {
H
huweiqi 已提交
600
    console.info('fetch failed, message =', err);
Z
zhang-daiyue 已提交
601 602 603
  }

  if (asset == undefined) {
H
huweiqi 已提交
604
    console.error('asset not exist');
Z
zhang-daiyue 已提交
605 606 607 608 609 610
    return;
  }
  try {
    await mgr.delete(asset.uri);
    console.info("delete successfully");
  } catch (err) {
H
huweiqi 已提交
611
    console.error("delete failed with error: " + err);
Z
zhang-daiyue 已提交
612
  }
Y
yangbo 已提交
613 614 615
}
```

Z
zhang-daiyue 已提交
616
### on
Y
yangbo 已提交
617

Z
zhang-daiyue 已提交
618
on(type: ChangeEvent, callback: Callback<void>): void
Y
yangbo 已提交
619

Z
zhang-daiyue 已提交
620
打开文件管理库变更通知,使用callback方式返回异步结果。
李云帆 已提交
621

C
caochuan 已提交
622 623
此接口即将废弃,请使用[on<sup>10+</sup>](#on10)的新接口

李云帆 已提交
624
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
Y
yangbo 已提交
625 626 627

**参数:**

Z
zhang-daiyue 已提交
628 629 630 631
| 参数名   | 类型                 | 必填 | 说明                                                         |
| -------- | -------------------- | ---- | ------------------------------------------------------------ |
| type     | [ChangeEvent](#changeevent)               | 是   | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
| callback | Callback&lt;void&gt; | 是   | 回调返回空                                                   |
Y
yangbo 已提交
632 633 634 635

**示例:**

```ts
Z
zhang-daiyue 已提交
636
async function example() {
H
huweiqi 已提交
637
  console.info('onDemo');
H
huweiqi 已提交
638 639 640 641 642 643 644 645 646 647 648
  let count = 0;
  mgr.on('imageChange', () => {
    count++;
    // image file had changed, do something
  });
  try {
    let testFileName = "testFile" + Date.now() + ".jpg";
    let fileAsset = await mgr.createPhotoAsset(testFileName);
    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
    console.info('createPhotoAsset successfully');
  } catch (err) {
H
huweiqi 已提交
649
    console.error('createPhotoAsset failed, message = ' + err);
H
huweiqi 已提交
650 651 652 653 654
  }
  //sleep 1s
  if (count > 0) {
    console.info("onDemo success");
  } else {
H
huweiqi 已提交
655
    console.error("onDemo fail");
H
huweiqi 已提交
656 657 658 659
  }
  mgr.off('imageChange', () => {
    // stop listening success
  });
Y
yangbo 已提交
660 661 662
}
```

Z
zhang-daiyue 已提交
663
### off
Y
yangbo 已提交
664

Z
zhang-daiyue 已提交
665
off(type: ChangeEvent, callback?: Callback&lt;void&gt;): void
Y
yangbo 已提交
666

Z
zhang-daiyue 已提交
667
关闭文件管理库变更通知,使用callback方式返回异步结果。
李云帆 已提交
668

C
caochuan 已提交
669 670
此接口即将废弃,请使用[off<sup>10+</sup>](#off10)的新接口

李云帆 已提交
671
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
Y
yangbo 已提交
672 673 674

**参数:**

Z
zhang-daiyue 已提交
675 676 677 678
| 参数名   | 类型                 | 必填 | 说明                                                         |
| -------- | -------------------- | ---- | ------------------------------------------------------------ |
| type     | [ChangeEvent](#changeevent)               | 是   | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
| callback | Callback&lt;void&gt; | 否   | 回调返回空                                                   |
Y
yangbo 已提交
679 680 681 682

**示例:**

```ts
Z
zhang-daiyue 已提交
683
async function example() {
H
huweiqi 已提交
684
  console.info('offDemo');
H
huweiqi 已提交
685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700
  let count = 0;
  mgr.on('imageChange', () => {
    count++;
    // image file had changed, do something
  });

  mgr.off('imageChange', () => {
    // stop listening success
  });

  try {
    let testFileName = "testFile" + Date.now() + ".jpg";
    let fileAsset = await mgr.createPhotoAsset(testFileName);
    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
    console.info('createPhotoAsset successfully');
  } catch (err) {
H
huweiqi 已提交
701
    console.error('createPhotoAsset failed, message = ' + err);
H
huweiqi 已提交
702 703 704 705 706
  }
  //sleep 1s
  if (count == 0) {
    console.info("offDemo success");
  } else {
H
huweiqi 已提交
707
    console.error("offDemo fail");
H
huweiqi 已提交
708
  }
Y
yangbo 已提交
709 710 711 712 713
}
```

### getActivePeers

Z
zhang-daiyue 已提交
714
getActivePeers(callback: AsyncCallback&lt;Array&lt;PeerInfo&gt;&gt;): void;
Y
yangbo 已提交
715 716 717 718 719 720 721 722 723

获取在线对端设备的信息,使用callback方式返回异步结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore

**参数:**

| 参数名   | 类型                              | 必填 | 说明         |
| -------- | --------------------------------- | ---- | ------------ |
Z
zhang-daiyue 已提交
724
| callback | AsyncCallback&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | 是   | 返回在线设备列表 |
Y
yangbo 已提交
725 726 727 728

**示例:**

```ts
Z
zhang-daiyue 已提交
729
async function example() {
H
huweiqi 已提交
730
  console.info('getActivePeersDemo');
Z
zhang-daiyue 已提交
731 732
  mgr.getActivePeers((err, devicesInfo) => {
    if (devicesInfo != undefined) {
H
huweiqi 已提交
733
      console.log('getActivePeers succeed.');
Z
zhang-daiyue 已提交
734 735 736 737
      for (let i = 0; i < devicesInfo.length; i++) {
        console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
      }
    } else {
H
huweiqi 已提交
738
      console.error('getActivePeers failed. message = ', err);
Z
zhang-daiyue 已提交
739 740
    }
  });
Y
yangbo 已提交
741 742 743 744 745
}
```

### getActivePeers

Z
zhang-daiyue 已提交
746
getActivePeers(): Promise&lt;Array&lt;PeerInfo&gt;&gt;;
Y
yangbo 已提交
747 748 749 750 751 752 753 754 755

获取在线对端设备的信息,使用promise方式返回异步结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore

**返回值:**

| 类型                        | 说明                          |
| --------------------------- | ----------------------------- |
Z
zhang-daiyue 已提交
756
| Promise&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | Promise实例,返回在线设备列表 |
Y
yangbo 已提交
757 758 759 760

**示例:**

```ts
Z
zhang-daiyue 已提交
761
async function example() {
H
huweiqi 已提交
762
  console.info('getActivePeersDemo');
Z
zhang-daiyue 已提交
763 764 765
  try {
    var devicesInfo = await mgr.getActivePeers();
  } catch (err) {
H
huweiqi 已提交
766
    console.error('getActivePeers failed. message = ', err);
Z
zhang-daiyue 已提交
767 768
  }
  if (devicesInfo != undefined) {
H
huweiqi 已提交
769
    console.log('getActivePeers succeed.');
Z
zhang-daiyue 已提交
770 771
    for (let i = 0; i < devicesInfo.length; i++) {
      console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
Y
yangbo 已提交
772
    }
Z
zhang-daiyue 已提交
773
  } else {
H
huweiqi 已提交
774
    console.error('get distributed fail');
Z
zhang-daiyue 已提交
775
  }
Y
yangbo 已提交
776 777 778 779 780
}
```

### getAllPeers

Z
zhang-daiyue 已提交
781
getAllPeers(callback: AsyncCallback&lt;Array&lt;PeerInfo&gt;&gt;): void;
Y
yangbo 已提交
782 783 784 785 786 787 788 789 790

获取所有对端设备的信息,使用callback方式返回异步结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore

**参数:**

| 参数名   | 类型                              | 必填 | 说明         |
| -------- | --------------------------------- | ---- | ------------ |
Z
zhang-daiyue 已提交
791
| callback | AsyncCallback&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | 是   | 返回在线设备列表 |
Y
yangbo 已提交
792 793 794 795

**示例:**

```ts
Z
zhang-daiyue 已提交
796
async function example() {
H
huweiqi 已提交
797
  console.info('getAllPeersDemo');
Z
zhang-daiyue 已提交
798 799
  mgr.getAllPeers((err, devicesInfo) => {
    if (devicesInfo != undefined) {
H
huweiqi 已提交
800
      console.log('getAllPeers succeed.');
Z
zhang-daiyue 已提交
801 802 803 804
      for (let i = 0; i < devicesInfo.length; i++) {
        console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
      }
    } else {
H
huweiqi 已提交
805
      console.error('getAllPeers failed. message = ', err);
Z
zhang-daiyue 已提交
806 807
    }
  });
Y
yangbo 已提交
808 809 810 811 812
}
```

### getAllPeers

Z
zhang-daiyue 已提交
813
getAllPeers(): Promise&lt;Array&lt;PeerInfo&gt;&gt;;
Y
yangbo 已提交
814 815 816 817 818 819 820 821 822

获取所有对端设备的信息,使用promise方式返回异步结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore

**返回值:**

| 类型                        | 说明                          |
| --------------------------- | ----------------------------- |
Z
zhang-daiyue 已提交
823
| Promise&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | Promise实例,返回所有设备列表 |
Y
yangbo 已提交
824 825 826 827

**示例:**

```ts
Z
zhang-daiyue 已提交
828
async function example() {
H
huweiqi 已提交
829
  console.info('getAllPeersDemo');
Z
zhang-daiyue 已提交
830 831 832
  try {
    var devicesInfo = await mgr.getAllPeers();
  } catch (err) {
H
huweiqi 已提交
833
    console.error('getAllPeers failed. message = ', err);
Z
zhang-daiyue 已提交
834 835
  }
  if (devicesInfo != undefined) {
H
huweiqi 已提交
836
    console.log('getAllPeers succeed.');
Z
zhang-daiyue 已提交
837 838
    for (let i = 0; i < devicesInfo.length; i++) {
      console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
Y
yangbo 已提交
839
    }
Z
zhang-daiyue 已提交
840
  } else {
H
huweiqi 已提交
841
    console.error('get distributed fail');
Z
zhang-daiyue 已提交
842
  }
Y
yangbo 已提交
843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863
}
```

### release

release(callback: AsyncCallback&lt;void&gt;): void

释放UserFileManager实例。
当后续不需要使用UserFileManager实例中的方法时调用。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名   | 类型                      | 必填 | 说明                 |
| -------- | ------------------------- | ---- | -------------------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调表示成功还是失败 |

**示例:**

```ts
Z
zhang-daiyue 已提交
864 865 866 867
async function example() {
  console.info('releaseDemo');
  mgr.release((err) => {
    if (err != undefined) {
H
huweiqi 已提交
868
      console.error('release failed. message = ', err);
Z
zhang-daiyue 已提交
869 870 871
    } else {
      console.info('release ok.');
    }
H
huweiqi 已提交
872
  });
Y
yangbo 已提交
873 874 875 876 877 878 879 880 881 882
}
```

### release

release(): Promise&lt;void&gt;

释放UserFileManager实例。
当后续不需要使用UserFileManager 实例中的方法时调用。

李云帆 已提交
883
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
Y
yangbo 已提交
884 885 886 887 888 889 890 891 892 893

**返回值:**

| 类型                | 说明                              |
| ------------------- | --------------------------------- |
| Promise&lt;void&gt; | Promise实例,用于获取异步返回结果 |

**示例:**

```ts
Z
zhang-daiyue 已提交
894 895 896 897 898 899
async function example() {
  console.info('releaseDemo');
  try {
    await mgr.release();
    console.info('release ok.');
  } catch (err) {
H
huweiqi 已提交
900
    console.error('release failed. message = ', err);
Z
zhang-daiyue 已提交
901
  }
Y
yangbo 已提交
902 903 904
}
```

C
caochuan 已提交
905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010
### on<sup>10+</sup>

on(uri: string, forSubUri: boolean, callback: Callback&lt;ChangeData&gt;) : void

打开对指定uri的监听,使用callback方式返回异步结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名    | 类型                                        | 必填 | 说明                                                         |
| --------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
| uri       | string                                      | 是   | FileAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri10)的值。 |
| forSubUri | boolean                                     | 是   | 是否模糊监听,uri为相册uri时,forSubUri 为true能监听到相册中文件的变化,如果是false只能监听相册本身变化。uri为fileAsset时,forSubUri 为true、false没有区别,uri为DefaultChangeUri时,forSubUri必须为true,如果为false将找不到该uri,收不到任何消息。 |
| callback  | Callback&lt;[ChangeData](#changedata10)&gt; | 是   | 返回要监听的[ChangeData](#changedata10)。注:uri可以注册多个不同的callback监听,[off<sup>10+</sup>](#off10)可以关闭该uri所有监听,也可以关闭指定callback的监听。 |

**示例:**

```ts
async function example() {
  console.info('onDemo');
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOptions);
  let fileAsset = await fetchResult.getFirstObject();
  if (fileAsset != undefined) {
    console.info('fileAsset.displayName : ' + fileAsset.displayName);
  }
  let onCallback1 = (changeData) => {
      console.info('onCallback1 success, changData: ' + JSON.stringify(changeData));
    //file had changed, do something
  }
  let onCallback2 = (changeData) => {
      console.info('onCallback2 success, changData: ' + JSON.stringify(changeData));
    //file had changed, do something
  }
  // 注册onCallback1监听
  mgr.on(fileAsset.uri, false, onCallback1); 
  // 注册onCallback2监听
  mgr.on(fileAsset.uri, false, onCallback2);

  fileAsset.favorite(true, (err) => {
    if (err == undefined) {
      console.info('favorite successfully');
    } else {
      console.error('favorite failed with error:' + err);
    }
  });
}
```

### off<sup>10+</sup>

 off(uri: string, callback?: Callback&lt;ChangeData&gt;): void

关闭指定uri的监听,一个uri可以注册多个监听,存在多个callback监听时,可以取消指定注册的callback的监听;不指定callback时解除该uri的所有监听。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名   | 类型                                        | 必填 | 说明                                                         |
| -------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
| uri      | string                                      | 是   | FileAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri10)的值。 |
| callback | Callback&lt;[ChangeData](#changedata10)&gt; | 否   | 解除[on<sup>10+</sup>](#on10)注册时的callback的监听,不填时,解除该uri的所有监听。注:off指定注册的callback后不会进入此回调。 |

**示例:**

```ts
async function example() {
  console.info('offDemo');
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOptions);
  let fileAsset = await fetchResult.getFirstObject();
  if (fileAsset != undefined) {
    console.info('fileAsset.displayName : ' + fileAsset.displayName);
  }
  let onCallback1 = (changeData) => {
    console.info('onCallback1 on');
  }
  let onCallback2 = (changeData) => {
    console.info('onCallback2 on');
  }
  // 注册onCallback1监听
  mgr.on(fileAsset.uri, false, onCallback1);
  // 注册onCallback2监听
  mgr.on(fileAsset.uri, false, onCallback2);
  // 关闭onCallback1监听,onCallback2 继续监听
  mgr.off(fileAsset.uri, onCallback1);
  fileAsset.favorite(true, (err) => {
    if (err == undefined) {
      console.info('favorite successfully');
    } else {
      console.error('favorite failed with error:' + err);
    }
  });
}
```

Y
yangbo 已提交
1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021
## FileAsset

提供封装文件属性的方法。

### 属性

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

| 名称                      | 类型                     | 可读 | 可写 | 说明                                                   |
| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ |
| uri                       | string                   | 是   | 否   | 文件资源uri(如:dataability:///media/image/2)         |
Z
zhang-daiyue 已提交
1022
| fileType   | [FileType](#filetype) | 是   | 否   | 媒体文件类型                                               |
Y
yangbo 已提交
1023 1024 1025
| displayName               | string                   | 是   | 是   | 显示文件名,包含后缀名                                 |


Z
zhang-daiyue 已提交
1026
### get
Y
yangbo 已提交
1027

Z
zhang-daiyue 已提交
1028
get(member: string): MemberType;
Y
yangbo 已提交
1029

H
huweiqi 已提交
1030
获取FileAsset成员参数。
Y
yangbo 已提交
1031 1032 1033 1034 1035

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

Z
zhang-daiyue 已提交
1036 1037 1038
| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
| member | string | 是    | 成员参数名称例如:ImageVideoKey.URI |
Y
yangbo 已提交
1039 1040

**示例:**
H
huweiqi 已提交
1041

Z
zhang-daiyue 已提交
1042
```ts
H
huweiqi 已提交
1043 1044
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1045
async function example() {
H
huweiqi 已提交
1046
  console.info('fileAssetGetDemo');
Z
zhang-daiyue 已提交
1047 1048 1049 1050 1051
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1052
    };
Z
zhang-daiyue 已提交
1053 1054
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1055 1056
    let title = userFileManager.ImageVideoKey.TITLE;
    let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1057 1058
    console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
  } catch (err) {
H
huweiqi 已提交
1059
    console.error('release failed. message = ', err);
Z
zhang-daiyue 已提交
1060
  }
Y
yangbo 已提交
1061 1062 1063
}
```

Z
zhang-daiyue 已提交
1064
### set
Y
yangbo 已提交
1065

Z
zhang-daiyue 已提交
1066
set(member: string, value: string): void;
Y
yangbo 已提交
1067

H
huweiqi 已提交
1068
设置FileAsset成员参数。
Y
yangbo 已提交
1069 1070 1071

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
1072
**参数:**
Y
yangbo 已提交
1073

Z
zhang-daiyue 已提交
1074 1075 1076 1077
| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
| member | string | 是    | 成员参数名称例如:ImageVideoKey.URI |
| value | string | 是    | 设置成员参数名称,只能修改ImageVideoKey.TITLE的值 |
Y
yangbo 已提交
1078 1079

**示例:**
H
huweiqi 已提交
1080

Z
zhang-daiyue 已提交
1081
```ts
H
huweiqi 已提交
1082 1083
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1084
async function example() {
H
huweiqi 已提交
1085
  console.info('fileAssetSetDemo');
Z
zhang-daiyue 已提交
1086 1087 1088 1089 1090
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1091
    };
Z
zhang-daiyue 已提交
1092 1093
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1094 1095
    let title = userFileManager.ImageVideoKey.TITLE;
    fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
1096
  } catch (err) {
H
huweiqi 已提交
1097
    console.error('release failed. message = ', err);
Z
zhang-daiyue 已提交
1098
  }
Y
yangbo 已提交
1099 1100 1101 1102 1103 1104 1105 1106 1107
}
```

### commitModify

commitModify(callback: AsyncCallback&lt;void&gt;): void

修改文件的元数据,使用callback方式返回异步结果。

Z
zhang-daiyue 已提交
1108
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
| callback | AsyncCallback&lt;void&gt; | 是    | 回调返回空 |

**示例:**

Z
zhang-daiyue 已提交
1120
```ts
H
huweiqi 已提交
1121 1122
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1123
async function example() {
H
huweiqi 已提交
1124
  console.info('commitModifyDemo');
Z
zhang-daiyue 已提交
1125 1126 1127 1128 1129 1130 1131
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1132 1133
  let title = userFileManager.ImageVideoKey.TITLE;
  let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1134
  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
H
huweiqi 已提交
1135
  fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
1136 1137
  fileAsset.commitModify((err) => {
    if (err == undefined) {
H
huweiqi 已提交
1138
      let newFileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1139 1140
      console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
    } else {
H
huweiqi 已提交
1141
      console.error('commitModify failed, message =', err);
Z
zhang-daiyue 已提交
1142 1143
    }
  });
Y
yangbo 已提交
1144 1145 1146 1147 1148 1149 1150 1151 1152
}
```

### commitModify

commitModify(): Promise&lt;void&gt;

修改文件的元数据,使用promise方式返回异步结果。

Z
zhang-daiyue 已提交
1153
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1154 1155 1156 1157 1158 1159 1160 1161 1162

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**返回值:**

| 类型                  | 说明         |
| ------------------- | ---------- |
| Promise&lt;void&gt; | Promise返回空 |

Z
zhang-daiyue 已提交
1163
**示例:**  
Y
yangbo 已提交
1164

Z
zhang-daiyue 已提交
1165
```ts
H
huweiqi 已提交
1166 1167
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1168
async function example() {
H
huweiqi 已提交
1169
  console.info('commitModifyDemo');
Z
zhang-daiyue 已提交
1170 1171 1172 1173 1174 1175 1176
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1177 1178
  let title = userFileManager.ImageVideoKey.TITLE;
  let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1179
  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
H
huweiqi 已提交
1180
  fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
1181
  try {
H
huweiqi 已提交
1182 1183
    await fileAsset.commitModify();
    let newFileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1184 1185
    console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
  } catch (err) {
H
huweiqi 已提交
1186
    console.error('release failed. message = ', err);
Z
zhang-daiyue 已提交
1187
  }
Y
yangbo 已提交
1188 1189 1190 1191 1192 1193 1194 1195 1196
}
```

### open

open(mode: string, callback: AsyncCallback&lt;number&gt;): void

打开当前文件,使用callback方式返回异步结果。

H
huweiqi 已提交
1197
**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。
Y
yangbo 已提交
1198

H
huweiqi 已提交
1199
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1200 1201 1202 1203 1204 1205 1206 1207

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名      | 类型                          | 必填   | 说明                                  |
| -------- | --------------------------- | ---- | ----------------------------------- |
| mode     | string                      | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
1208
| callback | AsyncCallback&lt;number&gt; | 是    | 回调返回文件描述符                            |
Y
yangbo 已提交
1209 1210 1211

**示例:**

Z
zhang-daiyue 已提交
1212
```ts
Y
yangbo 已提交
1213
async function example() {
H
huweiqi 已提交
1214
  console.info('openDemo');
H
huweiqi 已提交
1215 1216
   let testFileName = "testFile" + Date.now() + ".jpg";
  const fileAsset = await mgr.createPhotoAsset(testFileName);
Z
zhang-daiyue 已提交
1217 1218 1219
  fileAsset.open('rw', (err, fd) => {
    if (fd != undefined) {
      console.info('File fd' + fd);
H
huweiqi 已提交
1220
      fileAsset.close(fd);
Z
zhang-daiyue 已提交
1221
    } else {
H
huweiqi 已提交
1222
      console.error('File err' + err);
Z
zhang-daiyue 已提交
1223 1224
    }
  });
Y
yangbo 已提交
1225 1226 1227 1228 1229 1230 1231 1232 1233
}
```

### open

open(mode: string): Promise&lt;number&gt;

打开当前文件,使用promise方式返回异步结果。

H
huweiqi 已提交
1234
**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。
Y
yangbo 已提交
1235

H
huweiqi 已提交
1236
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名  | 类型     | 必填   | 说明                                  |
| ---- | ------ | ---- | ----------------------------------- |
| mode | string | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |

**返回值:**

| 类型                    | 说明            |
| --------------------- | ------------- |
1250
| Promise&lt;number&gt; | Promise返回文件描述符 |
Y
yangbo 已提交
1251 1252 1253

**示例:**

Z
zhang-daiyue 已提交
1254
```ts
Y
yangbo 已提交
1255
async function example() {
H
huweiqi 已提交
1256
  console.info('openDemo');
Z
zhang-daiyue 已提交
1257
  try {
H
huweiqi 已提交
1258 1259
    let testFileName = "testFile" + Date.now() + ".jpg";
    const fileAsset = await mgr.createPhotoAsset(testFileName);
H
huweiqi 已提交
1260
    let fd = await fileAsset.open('rw');
Z
zhang-daiyue 已提交
1261 1262
    if (fd != undefined) {
      console.info('File fd' + fd);
H
huweiqi 已提交
1263
      fileAsset.close(fd);
Z
zhang-daiyue 已提交
1264
    } else {
H
huweiqi 已提交
1265
      console.error(' open File fail');
Z
zhang-daiyue 已提交
1266 1267
    }
  } catch (err) {
H
huweiqi 已提交
1268
    console.error('open Demo err' + err);
Z
zhang-daiyue 已提交
1269
  }
Y
yangbo 已提交
1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289
}
```

### close

close(fd: number, callback: AsyncCallback&lt;void&gt;): void

关闭当前文件,使用callback方式返回异步结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
| fd       | number                    | 是    | 文件描述符 |
| callback | AsyncCallback&lt;void&gt; | 是    | 回调返回空 |

**示例:**

Z
zhang-daiyue 已提交
1290
```ts
H
huweiqi 已提交
1291 1292
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1293
async function example() {
H
huweiqi 已提交
1294
  console.info('closeDemo');
Z
zhang-daiyue 已提交
1295 1296 1297 1298 1299
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1300
    };
Z
zhang-daiyue 已提交
1301 1302 1303 1304 1305 1306 1307 1308
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    const fileAsset = await fetchResult.getFirstObject();
    let fd = await fileAsset.open('rw');
    console.info('file fd', fd);
    fileAsset.close(fd, (err) => {
      if (err == undefined) {
        console.info('asset close succeed.');
      } else {
H
huweiqi 已提交
1309
        console.error('close failed, message = ' + err);
Z
zhang-daiyue 已提交
1310
      }
Y
yangbo 已提交
1311
    });
Z
zhang-daiyue 已提交
1312
  } catch (err) {
H
huweiqi 已提交
1313
    console.error('close failed, message = ' + err);
Z
zhang-daiyue 已提交
1314
  }
Y
yangbo 已提交
1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339
}
```

### close

close(fd: number): Promise&lt;void&gt;

关闭当前文件,使用promise方式返回异步结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名  | 类型     | 必填   | 说明    |
| ---- | ------ | ---- | ----- |
| fd   | number | 是    | 文件描述符 |

**返回值:**

| 类型                  | 说明         |
| ------------------- | ---------- |
| Promise&lt;void&gt; | Promise返回空 |

**示例:**

Z
zhang-daiyue 已提交
1340
```ts
H
huweiqi 已提交
1341 1342
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1343
async function example() {
H
huweiqi 已提交
1344
  console.info('closeDemo');
Z
zhang-daiyue 已提交
1345 1346 1347 1348 1349
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1350
    };
Z
zhang-daiyue 已提交
1351 1352 1353 1354
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    const asset = await fetchResult.getFirstObject();
    let fd = await asset.open('rw');
    console.info('file fd', fd);
H
huweiqi 已提交
1355
    await asset.close(fd);
Z
zhang-daiyue 已提交
1356 1357
    console.info('asset close succeed.');
  } catch (err) {
H
huweiqi 已提交
1358
    console.error('close failed, message = ' + err);
Z
zhang-daiyue 已提交
1359
  }
Y
yangbo 已提交
1360 1361 1362 1363 1364 1365 1366 1367 1368
}
```

### getThumbnail

getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void

获取文件的缩略图,使用callback方式返回异步结果。

Z
zhang-daiyue 已提交
1369
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1370 1371 1372 1373 1374 1375 1376

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名      | 类型                                  | 必填   | 说明               |
| -------- | ----------------------------------- | ---- | ---------------- |
Z
zengyawen 已提交
1377
| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | 是    | 回调返回缩略图的PixelMap |
Y
yangbo 已提交
1378 1379 1380

**示例:**

Z
zhang-daiyue 已提交
1381
```ts
H
huweiqi 已提交
1382 1383
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1384
async function example() {
H
huweiqi 已提交
1385
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1386 1387 1388 1389 1390 1391 1392
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1393
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1394 1395 1396 1397
  asset.getThumbnail((err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
H
huweiqi 已提交
1398
      console.error('getThumbnail fail', err);
Z
zhang-daiyue 已提交
1399 1400
    }
  });
Y
yangbo 已提交
1401 1402 1403 1404 1405
}
```

### getThumbnail

H
huweiqi 已提交
1406
getThumbnail(size: image.Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
Y
yangbo 已提交
1407 1408 1409

获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。

Z
zhang-daiyue 已提交
1410
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1411 1412 1413 1414 1415 1416 1417

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

| 参数名      | 类型                                  | 必填   | 说明               |
| -------- | ----------------------------------- | ---- | ---------------- |
1418
| size     | [image.Size](js-apis-image.md#size) | 是    | 缩略图尺寸            |
Z
zengyawen 已提交
1419
| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | 是    | 回调返回缩略图的PixelMap |
Y
yangbo 已提交
1420 1421 1422

**示例:**

Z
zhang-daiyue 已提交
1423
```ts
H
huweiqi 已提交
1424 1425
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1426
async function example() {
H
huweiqi 已提交
1427
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1428 1429 1430 1431 1432 1433 1434 1435
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let size = { width: 720, height: 720 };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1436
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1437 1438 1439 1440
  asset.getThumbnail(size, (err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
H
huweiqi 已提交
1441
      console.error('getThumbnail fail', err);
Y
yangbo 已提交
1442
    }
Z
zhang-daiyue 已提交
1443
  });
Y
yangbo 已提交
1444 1445 1446
}
```

Z
zhang-daiyue 已提交
1447
### getThumbnail
Y
yangbo 已提交
1448

H
huweiqi 已提交
1449
getThumbnail(size?: image.Size): Promise&lt;image.PixelMap&gt;
Y
yangbo 已提交
1450

Z
zhang-daiyue 已提交
1451
获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。
Y
yangbo 已提交
1452

Z
zhang-daiyue 已提交
1453
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1454 1455 1456 1457 1458

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

Z
zhang-daiyue 已提交
1459 1460
| 参数名  | 类型             | 必填   | 说明    |
| ---- | -------------- | ---- | ----- |
1461
| size | [image.Size](js-apis-image.md#size) | 否    | 缩略图尺寸 |
Y
yangbo 已提交
1462 1463 1464

**返回值:**

Z
zhang-daiyue 已提交
1465 1466
| 类型                            | 说明                    |
| ----------------------------- | --------------------- |
Z
zengyawen 已提交
1467
| Promise&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | Promise返回缩略图的PixelMap |
Y
yangbo 已提交
1468 1469 1470

**示例:**

Z
zhang-daiyue 已提交
1471
```ts
H
huweiqi 已提交
1472 1473
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1474
async function example() {
H
huweiqi 已提交
1475
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1476 1477 1478 1479 1480 1481 1482 1483
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let size = { width: 720, height: 720 };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1484
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1485 1486 1487
  asset.getThumbnail(size).then((pixelMap) => {
    console.info('getThumbnail successful ' + pixelMap);
  }).catch((err) => {
H
huweiqi 已提交
1488
    console.error('getThumbnail fail' + err);
Z
zhang-daiyue 已提交
1489
  });
Y
yangbo 已提交
1490 1491 1492
}
```

Z
zhang-daiyue 已提交
1493 1494 1495
### favorite

favorite(isFavorite: boolean, callback: AsyncCallback&lt;void&gt;): void
Y
yangbo 已提交
1496

Z
zhang-daiyue 已提交
1497
将文件设置为收藏文件,使用callback方式返回异步结果。
Y
yangbo 已提交
1498

Z
zhang-daiyue 已提交
1499
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1500 1501 1502 1503 1504

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:**

Z
zhang-daiyue 已提交
1505 1506 1507 1508
| 参数名        | 类型                        | 必填   | 说明                                 |
| ---------- | ------------------------- | ---- | ---------------------------------- |
| isFavorite | boolean                   | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
| callback   | AsyncCallback&lt;void&gt; | 是    | 回调返回空                              |
Y
yangbo 已提交
1509 1510 1511

**示例:**

Z
zhang-daiyue 已提交
1512
```ts
H
huweiqi 已提交
1513 1514
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1515
async function example() {
H
huweiqi 已提交
1516
  console.info('favoriteDemo');
Z
zhang-daiyue 已提交
1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  asset.favorite(true, (err) => {
    if (err == undefined) {
      console.info("favorite successfully");
    } else {
H
huweiqi 已提交
1528
      console.error("favorite failed with error:" + err);
Z
zhang-daiyue 已提交
1529 1530
    }
  });
Y
yangbo 已提交
1531 1532 1533
}
```

Z
zhang-daiyue 已提交
1534 1535 1536
### favorite

favorite(isFavorite: boolean): Promise&lt;void&gt;
Y
yangbo 已提交
1537

Z
zhang-daiyue 已提交
1538
将文件设置为收藏文件,使用promise方式返回异步结果。
Y
yangbo 已提交
1539

Z
zhang-daiyue 已提交
1540
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1541 1542 1543

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zhang-daiyue 已提交
1544 1545 1546 1547 1548 1549
**参数:**

| 参数名        | 类型      | 必填   | 说明                                 |
| ---------- | ------- | ---- | ---------------------------------- |
| isFavorite | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |

Y
yangbo 已提交
1550 1551
**返回值:**

Z
zhang-daiyue 已提交
1552 1553 1554
| 类型                  | 说明         |
| ------------------- | ---------- |
| Promise&lt;void&gt; | Promise返回空 |
Y
yangbo 已提交
1555 1556 1557

**示例:**

Z
zhang-daiyue 已提交
1558
```ts
H
huweiqi 已提交
1559 1560
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1561
async function example() {
H
huweiqi 已提交
1562
  console.info('favoriteDemo');
Z
zhang-daiyue 已提交
1563 1564 1565 1566 1567 1568 1569 1570 1571 1572
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  asset.favorite(true).then(function () {
    console.info("favorite successfully");
  }).catch(function (err) {
H
huweiqi 已提交
1573
    console.error("favorite failed with error:" + err);
Z
zhang-daiyue 已提交
1574
  });
Y
yangbo 已提交
1575 1576 1577
}
```

Z
zhang-daiyue 已提交
1578
## FetchResult
Y
yangbo 已提交
1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589

文件检索结果集。

### getCount

getCount(): number

获取文件检索结果中的文件总数。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zengyawen 已提交
1590
**返回值:**
Y
yangbo 已提交
1591 1592 1593 1594 1595 1596 1597

| 类型     | 说明       |
| ------ | -------- |
| number | 检索到的文件总数 |

**示例**

Z
zhang-daiyue 已提交
1598
```ts
H
huweiqi 已提交
1599 1600
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1601
async function example() {
H
huweiqi 已提交
1602
  console.info('getCountDemo');
Z
zhang-daiyue 已提交
1603 1604 1605 1606 1607 1608 1609
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const fetchCount = fetchResult.getCount();
H
huweiqi 已提交
1610
  console.info('fetchCount = ', fetchCount);
Y
yangbo 已提交
1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621
}
```

### isAfterLast

isAfterLast(): boolean

检查结果集是否指向最后一行。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zengyawen 已提交
1622
**返回值:**
Y
yangbo 已提交
1623 1624 1625 1626 1627 1628 1629

| 类型      | 说明                                 |
| ------- | ---------------------------------- |
| boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 |

**示例**

Z
zhang-daiyue 已提交
1630
```ts
H
huweiqi 已提交
1631 1632
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1633
async function example() {
Z
zhang-daiyue 已提交
1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const fetchCount = fetchResult.getCount();
  console.info('count:' + fetchCount);
  let fileAsset = await fetchResult.getLastObject();
  if (!fetchResult.isAfterLast()) {
    console.info('fileAsset isAfterLast displayName = ', fileAsset.displayName);
  } else {
    console.info('fileAsset  not isAfterLast ');
  }
Y
yangbo 已提交
1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660
}
```

### close

close(): void

释放 FetchFileResult 实例并使其失效。无法调用其他方法。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**示例**

Z
zhang-daiyue 已提交
1661
```ts
H
huweiqi 已提交
1662 1663
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1664
async function example() {
H
huweiqi 已提交
1665
  console.info('fetchResultCloseDemo');
Z
zhang-daiyue 已提交
1666 1667 1668 1669 1670
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
H
huweiqi 已提交
1671 1672 1673 1674 1675
  try {
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    await fetchResult.close();
    console.info('close succeed.');
  } catch (err) {
H
huweiqi 已提交
1676
    console.error('close fail. message = ' + err);
H
huweiqi 已提交
1677
  }
Y
yangbo 已提交
1678 1679 1680 1681 1682
}
```

### getFirstObject

Z
zhang-daiyue 已提交
1683
getFirstObject(callback: AsyncCallback&lt;T&gt;): void
Y
yangbo 已提交
1684

Z
zhang-daiyue 已提交
1685
获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。
Y
yangbo 已提交
1686 1687 1688 1689 1690 1691 1692

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名   | 类型                                          | 必填 | 说明                                        |
| -------- | --------------------------------------------- | ---- | ------------------------------------------- |
Z
zhang-daiyue 已提交
1693
| callback | AsyncCallback&lt;T&gt; | 是   | 异步获取结果集中的第一个完成后的回调 |
Y
yangbo 已提交
1694 1695 1696

**示例**

Z
zhang-daiyue 已提交
1697
```ts
H
huweiqi 已提交
1698 1699
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1700
async function example() {
H
huweiqi 已提交
1701
  console.info('getFirstObjectDemo');
Z
zhang-daiyue 已提交
1702 1703 1704 1705 1706 1707 1708 1709
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getFirstObject((err, fileAsset) => {
    if (fileAsset != undefined) {
H
huweiqi 已提交
1710
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1711
    } else {
H
huweiqi 已提交
1712
      console.error("fileAsset failed with err:" + err);
Z
zhang-daiyue 已提交
1713 1714
    }
  });
Y
yangbo 已提交
1715 1716 1717 1718 1719
}
```

### getFirstObject

Z
zhang-daiyue 已提交
1720
getFirstObject(): Promise&lt;T&gt;
Y
yangbo 已提交
1721

Z
zhang-daiyue 已提交
1722
获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。
Y
yangbo 已提交
1723 1724 1725

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zengyawen 已提交
1726
**返回值:**
Y
yangbo 已提交
1727 1728 1729

| 类型                                    | 说明                       |
| --------------------------------------- | -------------------------- |
H
huweiqi 已提交
1730
| Promise&lt;T&gt; | Promise方式返回 |
Y
yangbo 已提交
1731 1732 1733

**示例**

Z
zhang-daiyue 已提交
1734
```ts
H
huweiqi 已提交
1735 1736
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1737
async function example() {
H
huweiqi 已提交
1738
  console.info('getFirstObjectDemo');
Z
zhang-daiyue 已提交
1739 1740 1741 1742 1743 1744 1745
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1746
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1747 1748 1749 1750 1751
}
```

### getNextObject

Z
zhang-daiyue 已提交
1752
 getNextObject(callback: AsyncCallback&lt;T&gt;): void
Y
yangbo 已提交
1753 1754 1755 1756 1757 1758 1759 1760 1761

获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名    | 类型                                          | 必填 | 说明                                      |
| --------- | --------------------------------------------- | ---- | ----------------------------------------- |
Z
zhang-daiyue 已提交
1762
| callbacke | AsyncCallback&lt;T&gt; | 是   | 异步返回结果集中下一个之后的回调 |
Y
yangbo 已提交
1763 1764 1765

**示例**

Z
zhang-daiyue 已提交
1766
```ts
H
huweiqi 已提交
1767 1768
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1769
async function example() {
H
huweiqi 已提交
1770
  console.info('getNextObjectDemo');
Z
zhang-daiyue 已提交
1771 1772 1773 1774 1775 1776 1777 1778 1779 1780
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  await fetchResult.getFirstObject();
  if (fetchResult.isAfterLast()) {
    fetchResult.getNextObject((err, fileAsset) => {
      if (fileAsset != undefined) {
H
huweiqi 已提交
1781
        console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1782
      } else {
H
huweiqi 已提交
1783
        console.error("fileAsset failed with err: " + err);
Z
zhang-daiyue 已提交
1784 1785 1786
      }
    });
  }
Y
yangbo 已提交
1787 1788 1789 1790 1791
}
```

### getNextObject

Z
zhang-daiyue 已提交
1792
 getNextObject(): Promise&lt;T&gt;
Y
yangbo 已提交
1793

Z
zhang-daiyue 已提交
1794
获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。
Y
yangbo 已提交
1795 1796 1797

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zengyawen 已提交
1798
**返回值:**
Y
yangbo 已提交
1799 1800 1801

| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
Z
zhang-daiyue 已提交
1802
| Promise&lt;T&gt; | 返回结果集中下一个对象 |
Y
yangbo 已提交
1803 1804 1805

**示例**

Z
zhang-daiyue 已提交
1806
```ts
H
huweiqi 已提交
1807 1808
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1809
async function example() {
H
huweiqi 已提交
1810
  console.info('getNextObjectDemo');
Z
zhang-daiyue 已提交
1811 1812 1813 1814 1815 1816 1817 1818 1819
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  await fetchResult.getFirstObject();
  if (fetchResult.isAfterLast()) {
    let fileAsset = await fetchResult.getNextObject();
H
huweiqi 已提交
1820
    console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1821
  }
Y
yangbo 已提交
1822 1823 1824 1825 1826
}
```

### getLastObject

Z
zhang-daiyue 已提交
1827
getLastObject(callback: AsyncCallback&lt;T&gt;): void
Y
yangbo 已提交
1828

Z
zhang-daiyue 已提交
1829
获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。
Y
yangbo 已提交
1830 1831 1832 1833 1834 1835 1836

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名   | 类型                                          | 必填 | 说明                        |
| -------- | --------------------------------------------- | ---- | --------------------------- |
Z
zhang-daiyue 已提交
1837
| callback | AsyncCallback&lt;T&gt; | 是   | 异步返回结果集中最后一个的回调 |
Y
yangbo 已提交
1838 1839 1840

**示例**

Z
zhang-daiyue 已提交
1841
```ts
H
huweiqi 已提交
1842 1843
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1844
async function example() {
H
huweiqi 已提交
1845
  console.info('getLastObjectDemo');
Z
zhang-daiyue 已提交
1846 1847 1848 1849 1850 1851 1852 1853
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getLastObject((err, fileAsset) => {
    if (fileAsset != undefined) {
H
huweiqi 已提交
1854
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1855
    } else {
H
huweiqi 已提交
1856
      console.error("fileAsset failed with err: " + err);
Z
zhang-daiyue 已提交
1857 1858
    }
  });
Y
yangbo 已提交
1859 1860 1861 1862 1863
}
```

### getLastObject

Z
zhang-daiyue 已提交
1864
getLastObject(): Promise&lt;T&gt;
Y
yangbo 已提交
1865

Z
zhang-daiyue 已提交
1866
获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。
Y
yangbo 已提交
1867 1868 1869

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zengyawen 已提交
1870
**返回值:**
Y
yangbo 已提交
1871 1872 1873

| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
Z
zhang-daiyue 已提交
1874
| Promise&lt;T&gt; | 返回结果集中最后一个对象 |
Y
yangbo 已提交
1875 1876 1877

**示例**

Z
zhang-daiyue 已提交
1878
```ts
H
huweiqi 已提交
1879 1880
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1881
async function example() {
H
huweiqi 已提交
1882
  console.info('getLastObjectDemo');
Z
zhang-daiyue 已提交
1883 1884 1885 1886 1887 1888 1889
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getLastObject();
H
huweiqi 已提交
1890
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1891 1892 1893 1894 1895
}
```

### getPositionObject

Z
zhang-daiyue 已提交
1896
getPositionObject(index: number, callback: AsyncCallback&lt;T&gt;): void
Y
yangbo 已提交
1897

Z
zhang-daiyue 已提交
1898
获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。
Y
yangbo 已提交
1899 1900 1901 1902 1903 1904 1905 1906

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名       | 类型                                       | 必填   | 说明                 |
| -------- | ---------------------------------------- | ---- | ------------------ |
| index    | number                                   | 是    | 要获取的文件的索引,从0开始     |
Z
zhang-daiyue 已提交
1907
| callback | AsyncCallback&lt;T&gt; | 是    | 异步返回指定索引的文件资产的回调 |
Y
yangbo 已提交
1908 1909 1910

**示例**

Z
zhang-daiyue 已提交
1911
```ts
H
huweiqi 已提交
1912 1913
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1914
async function example() {
H
huweiqi 已提交
1915
  console.info('getPositionObjectDemo');
Z
zhang-daiyue 已提交
1916 1917 1918 1919 1920 1921 1922 1923
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getPositionObject(0, (err, fileAsset) => {
    if (fileAsset != undefined) {
H
huweiqi 已提交
1924
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1925
    } else {
H
huweiqi 已提交
1926
      console.error("fileAsset failed with err: " + err);
Z
zhang-daiyue 已提交
1927 1928
    }
  });
Y
yangbo 已提交
1929 1930 1931 1932 1933
}
```

### getPositionObject

Z
zhang-daiyue 已提交
1934
getPositionObject(index: number): Promise&lt;T&gt;
Y
yangbo 已提交
1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945

获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名    | 类型     | 必填   | 说明             |
| ----- | ------ | ---- | -------------- |
| index | number | 是    | 要获取的文件的索引,从0开始 |

Z
zengyawen 已提交
1946
**返回值:**
Y
yangbo 已提交
1947 1948 1949

| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
Z
zhang-daiyue 已提交
1950
| Promise&lt;T&gt; | 返回指定索引的文件资产的对象 |
Y
yangbo 已提交
1951 1952 1953

**示例**

Z
zhang-daiyue 已提交
1954
```ts
H
huweiqi 已提交
1955 1956
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1957
async function example() {
H
huweiqi 已提交
1958
  console.info('getPositionObjectDemo');
Z
zhang-daiyue 已提交
1959 1960 1961 1962 1963 1964 1965
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getPositionObject(0);
H
huweiqi 已提交
1966
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985
}
```

## Album

实体相册

### 属性

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

| 名称           | 类型    | 可读   | 可写   | 说明      |
| ------------ | ------ | ---- | ---- | ------- |
| albumName | string | 是    | 是    | 相册名称    |
| albumUri | string | 是    | 否    | 相册Uri   |
| dateModified | number | 是    | 否    | 修改日期    |
| count | number | 是    | 否    | 相册中文件数量 |
| coverUri | string | 是    | 否    | 封面文件Uri 

Z
zhang-daiyue 已提交
1986 1987 1988 1989
### getPhotoAssets

getPhotoAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;FileAsset&gt;&gt;): void;

H
huweiqi 已提交
1990
获取相册中的文件。该方法使用callback形式来返回文件。
Z
zhang-daiyue 已提交
1991

H
huweiqi 已提交
1992
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Z
zhang-daiyue 已提交
1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
| callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是   | callback 返回图片和视频数据结果集|

**示例**

```ts
H
huweiqi 已提交
2006 2007
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2008
async function example() {
H
huweiqi 已提交
2009
  console.info('albumGetFileAssetsDemoCallback');
Z
zhang-daiyue 已提交
2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022

  let predicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions = {
    predicates: predicates
  };
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
  const album = await albumList.getFirstObject();
  album.getPhotoAssets(fetchOption, (err, albumFetchResult) => {
    if (albumFetchResult != undefined) {
H
huweiqi 已提交
2023
      console.info("album getPhotoAssets successfully, getCount: " + albumFetchResult.getCount());
Z
zhang-daiyue 已提交
2024
    } else {
H
huweiqi 已提交
2025
      console.error("album getPhotoAssets failed with error: " + err);
Z
zhang-daiyue 已提交
2026 2027 2028 2029
    }
  });
}
```
Z
zengyawen 已提交
2030

Z
zhang-daiyue 已提交
2031 2032 2033 2034
### getPhotoAssets

getPhotoAssets(options: FetchOptions): Promise&lt;FetchResult&lt;FileAsset&gt;&gt;;

H
huweiqi 已提交
2035
获取相册中的文件。该方法使用Promise来返回文件。
Z
zhang-daiyue 已提交
2036

H
huweiqi 已提交
2037
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Z
zhang-daiyue 已提交
2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
| Promise | [FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt; | 是   | 图片和视频数据结果集 |

**示例**

```ts
H
huweiqi 已提交
2051 2052
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2053
async function example() {
H
huweiqi 已提交
2054
  console.info('albumGetFileAssetsDemoPromise');
Z
zhang-daiyue 已提交
2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066

  let predicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions = {
    predicates: predicates
  };
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
  const album = await albumList.getFirstObject();
  album.getPhotoAssets(fetchOption).then((albumFetchResult) => {
H
huweiqi 已提交
2067
    console.info("album getFileAssets successfully, getCount: " + albumFetchResult.getCount());
Z
zhang-daiyue 已提交
2068
  }).catch((err) => {
H
huweiqi 已提交
2069
    console.error("album getFileAssets failed with error: " + err);
Z
zhang-daiyue 已提交
2070 2071 2072 2073
  });
}
```

Y
yangbo 已提交
2074 2075 2076 2077 2078 2079
### commitModify

commitModify(callback: AsyncCallback&lt;void&gt;): void;

更新相册属性修改到数据库中。

Z
zhang-daiyue 已提交
2080
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
Y
yangbo 已提交
2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |

**示例**

```ts
H
huweiqi 已提交
2093 2094
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2095
async function example() {
H
huweiqi 已提交
2096
  console.info('albumCommitModifyDemo');
Z
zhang-daiyue 已提交
2097 2098 2099 2100 2101 2102 2103 2104 2105
  let predicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions = {
    predicates: predicates
  };
  const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
  const album = await albumList.getFirstObject();
  album.albumName = 'hello';
  album.commitModify((err) => {
    if (err != undefined) {
H
huweiqi 已提交
2106
      console.error("commitModify failed with error: " + err);
Z
zhang-daiyue 已提交
2107 2108 2109 2110
    } else {
      console.info("commitModify successfully");
    }
  });
Y
yangbo 已提交
2111 2112 2113 2114 2115 2116 2117 2118 2119
}
```

### commitModify

commitModify(): Promise&lt;void&gt;;

更新相册属性修改到数据库中。

Z
zhang-daiyue 已提交
2120
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
Y
yangbo 已提交
2121 2122 2123

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

Z
zengyawen 已提交
2124
**返回值:**
Y
yangbo 已提交
2125 2126 2127 2128 2129 2130 2131 2132

| 类型                  | 说明           |
| ------------------- | ------------ |
| Promise&lt;void&gt; | Promise调用返回空 |

**示例**

```ts
H
huweiqi 已提交
2133 2134
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2135
async function example() {
H
huweiqi 已提交
2136
  console.info('albumCommitModifyDemo');
Z
zhang-daiyue 已提交
2137 2138 2139 2140 2141 2142 2143
  let predicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions = {
    predicates: predicates
  };
  try {
    var albumList = await mgr.getPhotoAlbums(albumFetchOptions);
  } catch (err) {
H
huweiqi 已提交
2144
    console.error('getPhotoAlbums failed. message = ', err);
Z
zhang-daiyue 已提交
2145 2146 2147 2148 2149 2150
  }
  const album = await albumList.getFirstObject();
  album.albumName = 'hello';
  album.commitModify().then(() => {
    console.info("commitModify successfully");
  }).catch((err) => {
H
huweiqi 已提交
2151
    console.error("commitModify failed with error: " + err);
Z
zhang-daiyue 已提交
2152
  });
Y
yangbo 已提交
2153 2154 2155
}
```

Z
zhang-daiyue 已提交
2156
## PrivateAlbum
H
huweiqi 已提交
2157 2158

系统相册。
Z
zhang-daiyue 已提交
2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172

### 属性

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

| 名称           | 类型    | 可读   | 可写   | 说明      |
| ------------ | ------ | ---- | ---- | ------- |
| albumName | string | 是    | 是    | 相册名称    |
| albumUri | string | 是    | 否    | 相册Uri   |
| dateModified | number | 是    | 否    | 修改日期    |
| count | number | 是    | 否    | 相册中文件数量 |
| coverUri | string | 是    | 否    | 封面文件Uri 

### getPhotoAssets
Y
yangbo 已提交
2173

Z
zhang-daiyue 已提交
2174
getPhotoAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;FileAsset&gt;&gt;): void;
Y
yangbo 已提交
2175

H
huweiqi 已提交
2176
获取系统相册中的文件。该方法使用callback形式来返回文件。
Y
yangbo 已提交
2177

H
huweiqi 已提交
2178
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
2179 2180 2181 2182 2183

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

Z
zhang-daiyue 已提交
2184 2185 2186 2187
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
| callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是   | callback返回图片和视频数据结果集 |
Y
yangbo 已提交
2188 2189 2190 2191

**示例**

```ts
H
huweiqi 已提交
2192 2193
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2194
async function example() {
H
huweiqi 已提交
2195
  console.info('privateAlbumGetFileAssetsDemoCallback');
Z
zhang-daiyue 已提交
2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207
  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  const trashAlbum = await albumList.getFirstObject();
  trashAlbum.getPhotoAssets(fetchOption, (err, fetchResult) => {
    if (fetchResult != undefined) {
      let count = fetchResult.getCount();
      console.info('fetchResult.count = ', count);
    } else {
H
huweiqi 已提交
2208
      console.error('getFileAssets failed, message = ', err);
Z
zhang-daiyue 已提交
2209 2210
    }
  });
Y
yangbo 已提交
2211 2212
}

Z
zhang-daiyue 已提交
2213
```
Z
zengyawen 已提交
2214

Z
zhang-daiyue 已提交
2215
### getPhotoAssets
Y
yangbo 已提交
2216

Z
zhang-daiyue 已提交
2217
getPhotoAssets(options: FetchOptions): Promise&lt;FetchResult&lt;FileAsset&gt;&gt;;
Y
yangbo 已提交
2218

H
huweiqi 已提交
2219
获取系统相册中的文件。该方法使用Promise来返回文件。
Y
yangbo 已提交
2220

H
huweiqi 已提交
2221
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
2222 2223 2224 2225 2226

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

Z
zhang-daiyue 已提交
2227 2228 2229 2230
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |

Z
zengyawen 已提交
2231
**返回值:**
Z
zhang-daiyue 已提交
2232 2233 2234 2235

| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
| Promise:[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;| 图片和视频数据结果集 |
Y
yangbo 已提交
2236 2237 2238 2239

**示例**

```ts
H
huweiqi 已提交
2240 2241
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2242
async function example() {
H
huweiqi 已提交
2243
  console.info('privateAlbumGetFileAssetsDemoPromise');
Z
zhang-daiyue 已提交
2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254
  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  const trashAlbum = await albumList.getFirstObject();
  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
  let count = fetchResult.getCount();
  console.info('fetchResult.count = ', count);
}
Y
yangbo 已提交
2255
```
Z
zengyawen 已提交
2256

Z
zhang-daiyue 已提交
2257 2258 2259
### delete

delete(uri: string, callback: AsyncCallback&lt;void&gt;): void;
Y
yangbo 已提交
2260

H
huweiqi 已提交
2261
删除系统相册中的文件。
Y
yangbo 已提交
2262

Z
zhang-daiyue 已提交
2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 相册uri |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |

**示例**

```ts
H
huweiqi 已提交
2277 2278
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292
async function example() {
  console.info('privateAlbumDeleteCallback');
  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  const trashAlbum = await albumList.getFirstObject();
  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
  const fileAsset = await fetchResult.getFirstObject();
  let deleteFileUri = fileAsset.uri;
  trashAlbum.delete(deleteFileUri, (err) => {
    if (err != undefined) {
H
huweiqi 已提交
2293
      console.error('trashAlbum.delete failed, message = ', err);
Z
zhang-daiyue 已提交
2294 2295 2296 2297 2298 2299
    } else {
      console.info('trashAlbum.delete successfully');
    }
  });
}
```
Z
zengyawen 已提交
2300

Z
zhang-daiyue 已提交
2301
### delete
Y
yangbo 已提交
2302

Z
zhang-daiyue 已提交
2303
delete(uri: string): Promise&lt;void&gt;;
Y
yangbo 已提交
2304

H
huweiqi 已提交
2305
删除系统相册中的文件。
Y
yangbo 已提交
2306

Z
zhang-daiyue 已提交
2307
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2308 2309 2310 2311 2312

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

Z
zhang-daiyue 已提交
2313 2314 2315
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 相册uri |
Y
yangbo 已提交
2316

Z
zengyawen 已提交
2317
**返回值:**
Y
yangbo 已提交
2318

Z
zhang-daiyue 已提交
2319 2320 2321
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
| Promise&lt;void&gt;| 回调返回空 |
Y
yangbo 已提交
2322 2323 2324 2325

**示例**

```ts
H
huweiqi 已提交
2326 2327
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2328
async function example() {
H
huweiqi 已提交
2329
  console.info('privateAlbumDeleteDemoPromise');
Z
zhang-daiyue 已提交
2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342
  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  const trashAlbum = await albumList.getFirstObject();
  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
  const fileAsset = await fetchResult.getFirstObject();
  let deleteFileUri = fileAsset.uri;
  trashAlbum.delete(deleteFileUri).then(() => {
    console.info('trashAlbum.delete successfully');
  }).catch((err) => {
H
huweiqi 已提交
2343
    console.error('trashAlbum.delete failed, message = ', err);
Z
zhang-daiyue 已提交
2344 2345
  });
}   
Y
yangbo 已提交
2346 2347
```

Z
zhang-daiyue 已提交
2348
### recover
Y
yangbo 已提交
2349

Z
zhang-daiyue 已提交
2350
recover(uri: string, callback: AsyncCallback&lt;void&gt;): void;
李云帆 已提交
2351

H
huweiqi 已提交
2352
恢复系统相册中的文件。
Y
yangbo 已提交
2353

H
huweiqi 已提交
2354
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2355 2356 2357 2358

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**
Z
zhang-daiyue 已提交
2359 2360 2361 2362 2363

| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 相册uri |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |
Y
yangbo 已提交
2364 2365 2366 2367

**示例**

```ts
H
huweiqi 已提交
2368 2369
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383
async function example() {
  console.info('privateAlbumRecoverDemoCallback');
  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  const trashAlbum = await albumList.getFirstObject();
  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
  const fileAsset = await fetchResult.getFirstObject();
  let recoverFileUri = fileAsset.uri;
  trashAlbum.recover(recoverFileUri, (err) => {
    if (err != undefined) {
H
huweiqi 已提交
2384
      console.error('trashAlbum.recover failed, message = ', err);
Z
zhang-daiyue 已提交
2385 2386
    } else {
      console.info('trashAlbum.recover successfully');
Y
yangbo 已提交
2387
    }
Z
zhang-daiyue 已提交
2388
  });
Y
yangbo 已提交
2389 2390
}
```
Z
zengyawen 已提交
2391

Z
zhang-daiyue 已提交
2392
### recover
Y
yangbo 已提交
2393

Z
zhang-daiyue 已提交
2394
recover(uri: string): Promise&lt;void&gt;;
Y
yangbo 已提交
2395

H
huweiqi 已提交
2396
恢复系统相册中的文件。
李云帆 已提交
2397

H
huweiqi 已提交
2398
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2399 2400 2401 2402 2403

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数**

Z
zhang-daiyue 已提交
2404 2405 2406
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 相册uri |
Y
yangbo 已提交
2407

Z
zengyawen 已提交
2408
**返回值:**
Y
yangbo 已提交
2409

Z
zhang-daiyue 已提交
2410 2411 2412
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
| Promise&lt;void&gt;| 回调返回空 |
Y
yangbo 已提交
2413 2414 2415 2416

**示例**

```ts
H
huweiqi 已提交
2417 2418
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2419
async function example() {
H
huweiqi 已提交
2420
  console.info('privateAlbumRecoverDemoPromise');
Z
zhang-daiyue 已提交
2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433
  let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  const trashAlbum = await albumList.getFirstObject();
  let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
  const fileAsset = await fetchResult.getFirstObject();
  let recoverFileUri = fileAsset.uri;
  trashAlbum.recover(recoverFileUri).then(() => {
    console.info('trashAlbum.recover successfully');
  }).catch((err) => {
H
huweiqi 已提交
2434
    console.error('trashAlbum.recover failed, message = ', err);
Z
zhang-daiyue 已提交
2435
  });
Y
yangbo 已提交
2436 2437 2438
}
```

Z
zhang-daiyue 已提交
2439 2440 2441 2442
## MemberType

成员类型。

H
huweiqi 已提交
2443
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
zyjhandsome's avatar
zyjhandsome 已提交
2444

H
huweiqi 已提交
2445 2446
| 名称  |  类型 |  可读  |  可写  |  说明  |
| ----- |  ---- |  ---- |  ---- |  ---- |
Z
zengyawen 已提交
2447 2448 2449
| number |  number | 是 | 是 | number类型 |
| string |  string | 是 | 是 | string类型 |
| boolean |  boolean | 是 | 是 | boolean类型 |
Z
zhang-daiyue 已提交
2450 2451 2452 2453 2454

## ChangeEvent

变更监听的媒体文件类型。

H
huweiqi 已提交
2455
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
Z
zhang-daiyue 已提交
2456

H
huweiqi 已提交
2457
| 名称  |  类型 |  可读  |  可写  |  说明 |
H
huweiqi 已提交
2458 2459 2460 2461 2462 2463 2464
| ----- |  ---- |  ---- |  ---- |  ---- |
| deviceChange |  string | 是 | 是 |  设备 |
| albumChange |  string | 是 | 是 |  相册 |
| imageChange |  string | 是 | 是 |  图片 |
| audioChange |  string | 是 | 是 |  音频 |
| videoChange |  string | 是 | 是 |  视频 |
| remoteFileChange |  string | 是 | 是 |  远程文件 |
Z
zhang-daiyue 已提交
2465

Y
yangbo 已提交
2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477
## PeerInfo

注册设备的信息。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.DistributedCore

| 名称       | 类型                       | 可读 | 可写 | 说明             |
| ---------- | -------------------------- | ---- | ---- | ---------------- |
| deviceName | string                     | 是   | 否   | 注册设备的名称   |
| networkId  | string                     | 是   | 否   | 注册设备的网络ID |
| isOnline   | boolean                    | 是   | 否   | 是否在线         |

Z
zhang-daiyue 已提交
2478 2479 2480
## FileType

枚举,媒体文件类型。
Y
yangbo 已提交
2481 2482 2483

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

H
huweiqi 已提交
2484 2485 2486 2487 2488
| 名称  |  值 |  说明 |
| ----- |  ---- |  ---- |
| IMAGE |  1 |  图片 |
| VIDEO |  2 |  视频 |
| AUDIO |  3 |  音频 |
Y
yangbo 已提交
2489

Z
zhang-daiyue 已提交
2490
## PrivateAlbumType
Y
yangbo 已提交
2491

Z
zhang-daiyue 已提交
2492
枚举,系统相册类型。
Y
yangbo 已提交
2493 2494 2495

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

H
huweiqi 已提交
2496 2497 2498 2499
| 名称    |  值 |   说明   |
| -----   |  ----  |   ----  |
| TYPE_FAVORITE |  0 |  收藏夹相册 |
| TYPE_TRASH |  1 |  回收站相册 |
Z
zhang-daiyue 已提交
2500

Y
yangbo 已提交
2501 2502 2503 2504 2505 2506
## AudioKey

枚举,音频文件关键信息。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

H
huweiqi 已提交
2507
| 名称          |   值              | 说明                                                       |
Y
yangbo 已提交
2508 2509 2510 2511
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 文件uri                                                   |
| DISPLAY_NAME  | display_name        | 显示名字                                                   |
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
H
huweiqi 已提交
2512
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
Y
yangbo 已提交
2513 2514 2515 2516
| TITLE         | title               | 文件标题                                                   |
| ARTIST        | artist              | 作者                                                   |
| AUDIOALBUM    | audio_album         | 专辑                                                   |
| DURATION      | duration            | 持续时间(单位:毫秒)                                    |
Z
zhang-daiyue 已提交
2517
| FAVORITE      | favorite            | 收藏                                                   |
Y
yangbo 已提交
2518 2519 2520 2521 2522 2523 2524

## ImageVideoKey

枚举,图片和视频文件关键信息。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

H
huweiqi 已提交
2525
| 名称          | 值              | 说明                                                       |
Y
yangbo 已提交
2526 2527
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 文件uri                                                   |
Z
zhang-daiyue 已提交
2528
| FILE_TYPE     | file_type           | 媒体文件类型                                              |
Y
yangbo 已提交
2529 2530
| DISPLAY_NAME  | display_name        | 显示名字                                                   |
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
H
huweiqi 已提交
2531
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
Z
zhang-daiyue 已提交
2532
| TITLE         | title               | 文件标题                                                   |
Y
yangbo 已提交
2533 2534 2535 2536
| DURATION      | duration            | 持续时间(单位:毫秒)                                    |
| WIDTH         | width               | 图片宽度(单位:像素)                                    |
| HEIGHT        | height              | 图片高度(单位:像素)                                      |
| DATE_TAKEN    | date_taken          | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)                |
Z
zhang-daiyue 已提交
2537 2538
| ORIENTATION   | orientation         | 图片文件的方向                                             |
| FAVORITE      | favorite            | 收藏                                                    |
Y
yangbo 已提交
2539 2540 2541 2542 2543 2544 2545

## AlbumKey

枚举,相册关键信息。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

H
huweiqi 已提交
2546
| 名称          | 值              | 说明                                                       |
Y
yangbo 已提交
2547 2548
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 相册uri                                                   |
Z
zhang-daiyue 已提交
2549 2550
| FILE_TYPE     | file_type           | 媒体文件类型                                              |
| ALBUM_NAME    | album_name          | 相册名字                                                   |
Y
yangbo 已提交
2551
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
H
huweiqi 已提交
2552
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
Y
yangbo 已提交
2553

Z
zhang-daiyue 已提交
2554
## FetchOptions
Y
yangbo 已提交
2555 2556 2557 2558 2559

检索条件。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

H
huweiqi 已提交
2560 2561 2562 2563
| 名称                   | 类型                | 可读 | 可写 | 说明                                              |
| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ |
| fetchColumns           | Array&lt;string&gt; | 是   | 是   | 检索条件,指定列名查询,如果该参数为空时默认查询uri、name、fileType。示例:<br />fetchColumns: "uri"|
| predicates           | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是   | 是   | 谓词查询,显示过滤条件 |
Y
yangbo 已提交
2564

Z
zhang-daiyue 已提交
2565
## AlbumFetchOptions
Y
yangbo 已提交
2566

Z
zhang-daiyue 已提交
2567
相册检索条件。
李云帆 已提交
2568

Y
yangbo 已提交
2569 2570
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core

H
huweiqi 已提交
2571 2572 2573
| 名称                   | 类型                | 可读 | 可写 | 说明                                              |
| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ |
| predicates           | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是   | 是   | 谓词查询,显示过滤条件 |
C
caochuan 已提交
2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611

## ChangeData<sup>10+</sup>

监听器回调函数的值。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

| 名称    | 类型                        | 可读 | 可写 | 说明                                                         |
| ------- | --------------------------- | ---- | ---- | ------------------------------------------------------------ |
| type    | [NotifyType](#notifytype10) | 是   | 否   | ChangeData的通知类型。                                       |
| uris    | Array&lt;string&gt;         | 是   | 否   | 相同[NotifyType](#notifytype10)的所有uri,可以是FileAsset或Album。 |
| subUris | Array&lt;string&gt;         | 是   | 否   | 相册中变动文件的uri数组。                                    |

## NotifyType<sup>10+</sup>

枚举,通知事件的类型。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

| 名称                      | 值   | 说明                             |
| ------------------------- | ---- | -------------------------------- |
| NOTIFY_ADD                | 0    | 添加文件集或相册通知的类型。     |
| NOTIFY_UPDATE             | 1    | 文件集或相册的更新通知类型。     |
| NOTIFY_REMOVE             | 2    | 删除文件集或相册的通知类型。     |
| NOTIFY_ALBUM_ADD_ASSET    | 3    | 在相册中添加的文件集的通知类型。 |
| NOTIFY_ALBUM_REMOVE_ASSET | 4    | 在相册中删除的文件集的通知类型。 |

## DefaultChangeUri<sup>10+</sup>

枚举,DefaultChangeUri子类型。

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

| 名称              | 值                      | 说明                                                         |
| ----------------- | ----------------------- | ------------------------------------------------------------ |
| DEFAULT_PHOTO_URI | file://media/Photo      | 默认PhotoAsset的Uri,与forSubUri{true}一起使用,将接收所有PhotoAsset的更改通知。 |
| DEFAULT_ALBUM_URI | file://media/PhotoAlbum | 默认相册的Uri,与forSubUri{true}一起使用,将接收所有相册的更改通知。 |
| DEFAULT_AUDIO_URI | file://media/Audio      | 默认AudioAsset的Uri,与forSubUri{true}一起使用,将接收所有AudioAsset的更改通知。 |