js-apis-userFileManager.md 86.2 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
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口为系统接口。
Y
yangbo 已提交
8 9

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

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

## userFileManager.getUserFileMgr

getUserFileMgr(context: Context): UserFileManager

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

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

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

**参数:** 

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

**返回值:**

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

**示例:**

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

Y
yangbo 已提交
45 46
## UserFileManager

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

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


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



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

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

Y
yangbo 已提交
60 61 62 63
**参数:**

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

**示例:**

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

Z
zhang-daiyue 已提交
72 73 74 75 76 77 78 79 80 81 82 83 84
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 已提交
85
        console.info("fileAsset.displayName : " + fileAsset.displayName);
Z
zhang-daiyue 已提交
86 87
      }
    } else {
H
huweiqi 已提交
88
      console.error('fetchResult fail' + err);
Z
zhang-daiyue 已提交
89
    }
H
huweiqi 已提交
90
  });
Y
yangbo 已提交
91 92 93 94
}
```


Z
zhang-daiyue 已提交
95 96 97
### getPhotoAssets

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

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

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

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

Y
yangbo 已提交
105 106
**参数:**

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

Z
zhang-daiyue 已提交
111
**返回值**
Y
yangbo 已提交
112

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

Z
zhang-daiyue 已提交
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
### 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 已提交
207
  console.info('createPhotoAssetDemo');
H
huweiqi 已提交
208 209
  let testFileName = "testFile" + Date.now() + ".jpg";
  mgr.createPhotoAsset(testFileName, (err, fileAsset) => {
Z
zhang-daiyue 已提交
210 211 212 213
    if (fileAsset != undefined) {
      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
      console.info('createPhotoAsset successfully');
    } else {
H
huweiqi 已提交
214
      console.error('createPhotoAsset failed, message = ', err);
Z
zhang-daiyue 已提交
215
    }
H
huweiqi 已提交
216
  });
Y
yangbo 已提交
217 218 219
}
```

Z
zhang-daiyue 已提交
220
### createPhotoAsset
Y
yangbo 已提交
221

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

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

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

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

**参数:**

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

**返回值**

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

**示例:**

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

Z
zhang-daiyue 已提交
259
### getPhotoAlbums
Y
yangbo 已提交
260

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

Z
zhang-daiyue 已提交
263 264

获取相册,使用callback方式返回结果。
Y
yangbo 已提交
265 266 267

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

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

Y
yangbo 已提交
270 271
**参数:**

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

**示例:**

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

Z
zhang-daiyue 已提交
282
async function example() {
H
huweiqi 已提交
283
  console.info('getPhotoAlbumsDemo');
Z
zhang-daiyue 已提交
284 285 286 287 288 289 290 291 292 293 294 295
  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 已提交
296
          console.error('album is undefined, err = ', err);
Z
zhang-daiyue 已提交
297
        }
H
huweiqi 已提交
298
      });
H
huweiqi 已提交
299
    } else {
H
huweiqi 已提交
300
      console.error('getPhotoAlbums fail, message = ', err);
Z
zhang-daiyue 已提交
301
    }
H
huweiqi 已提交
302
  });
Y
yangbo 已提交
303 304 305
}
```

Z
zhang-daiyue 已提交
306
### getPhotoAlbums
Y
yangbo 已提交
307

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

310
获取相册,使用Promise方式返回结果。
Y
yangbo 已提交
311 312 313

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

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

Y
yangbo 已提交
316 317
**参数:**

Z
zhang-daiyue 已提交
318 319 320 321 322 323 324 325 326
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| options  | [AlbumFetchOptions](#albumfetchoptions)        | 是   | 相册检索选项              |

**返回值**

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

**示例:**

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

Z
zhang-daiyue 已提交
333
async function example() {
H
huweiqi 已提交
334
  console.info('getPhotoAlbumsDemo');
Z
zhang-daiyue 已提交
335 336 337 338 339 340 341 342 343 344
  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 已提交
345
    console.error('getPhotoAlbums fail, message = ' + err);
Z
zhang-daiyue 已提交
346
  }
Y
yangbo 已提交
347 348 349
}
```

Z
zhang-daiyue 已提交
350
### getPrivateAlbum
Y
yangbo 已提交
351

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


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

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

Z
zhang-daiyue 已提交
359
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
360 361 362

**参数:**

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

**示例:**

```ts
Z
zhang-daiyue 已提交
371
async function example() {
H
huweiqi 已提交
372
  console.info('getPrivateAlbumDemo');
Z
zhang-daiyue 已提交
373 374 375 376 377
  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 已提交
378
      console.error('getPrivateAlbum failed. message = ', err);
Z
zhang-daiyue 已提交
379 380
    }
  });
Y
yangbo 已提交
381 382 383
}
```

Z
zhang-daiyue 已提交
384
### getPrivateAlbum
Y
yangbo 已提交
385

Z
zhang-daiyue 已提交
386
getPrivateAlbum(type: PrivateAlbumType): Promise<FetchResult<PrivateAlbum>>;
Y
yangbo 已提交
387 388


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

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

Z
zhang-daiyue 已提交
393
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
394 395 396

**参数:**

Z
zhang-daiyue 已提交
397 398 399
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| type  | [PrivateAlbumType](#privatealbumtype)        | 是   | 系统相册类型              |
Y
yangbo 已提交
400 401 402

**返回值**

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

**示例:**

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

Z
zhang-daiyue 已提交
422
### getAudioAssets
Y
yangbo 已提交
423

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


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

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

Z
zhang-daiyue 已提交
431
**需要权限**:ohos.permission.READ_AUDIO
Y
yangbo 已提交
432 433 434

**参数:**

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

**示例:**

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

Z
zhang-daiyue 已提交
445 446 447 448 449 450 451 452
async function example() {
  console.info('getAudioAssets');
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };

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

Z
zhang-daiyue 已提交
467
### getAudioAssets
Y
yangbo 已提交
468

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


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

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

Z
zhang-daiyue 已提交
476
**需要权限**:ohos.permission.READ_AUDIO
Y
yangbo 已提交
477 478 479

**参数:**

Z
zhang-daiyue 已提交
480 481 482
| 参数名   | 类型                     | 必填 | 说明                      |
| -------- | ------------------------ | ---- | ------------------------- |
| options  | [FetchOptions](#fetchoptions)        | 是   | 检索选项              |
Y
yangbo 已提交
483 484 485

**返回值**

Z
zhang-daiyue 已提交
486 487
| 类型                        | 说明           |
| --------------------------- | -------------- |
488
| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise 返回音频检索结果 |
Y
yangbo 已提交
489 490 491 492

**示例:**

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

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

  if (fetchResult != undefined) {
    console.info('fetchFileResult success');
    let fileAsset = await fetchResult.getFirstObject();
    if (fileAsset != undefined) {
      console.info("fileAsset.displayName :" + fileAsset.displayName);
Y
yangbo 已提交
513
    }
Z
zhang-daiyue 已提交
514
  }
Y
yangbo 已提交
515 516
}
```
Z
zhang-daiyue 已提交
517
### delete
Y
yangbo 已提交
518

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

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

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

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

Z
zhang-daiyue 已提交
527
**参数**
Y
yangbo 已提交
528

Z
zhang-daiyue 已提交
529 530 531 532
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 媒体文件uri |
| callback | AsyncCallback<void> | 是   | 回调返回空 |
Y
yangbo 已提交
533

Z
zhang-daiyue 已提交
534
**示例**
Y
yangbo 已提交
535 536

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

Z
zhang-daiyue 已提交
539
async function example() {
H
huweiqi 已提交
540
  console.info('deleteAssetDemo');
Z
zhang-daiyue 已提交
541 542 543 544 545 546 547 548 549
  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 已提交
550
    console.info('fetch failed, message =', err);
Z
zhang-daiyue 已提交
551 552 553
  }

  if (asset == undefined) {
H
huweiqi 已提交
554
    console.error('asset not exist');
Z
zhang-daiyue 已提交
555 556 557 558 559 560
    return;
  }
  mgr.delete(asset.uri, (err) => {
    if (err == undefined) {
      console.info("delete successfully");
    } else {
H
huweiqi 已提交
561
      console.error("delete failed with error: " + err);
Z
zhang-daiyue 已提交
562 563
    }
  });
Y
yangbo 已提交
564 565
}
```
Z
zhang-daiyue 已提交
566
### delete
Y
yangbo 已提交
567

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

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

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

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

Z
zhang-daiyue 已提交
576
**参数**
Y
yangbo 已提交
577

Z
zhang-daiyue 已提交
578 579 580
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 媒体文件uri |
Y
yangbo 已提交
581

Z
zhang-daiyue 已提交
582
**返回值**
Y
yangbo 已提交
583

Z
zhang-daiyue 已提交
584 585 586
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
| Promise<void>| 回调返回空 |
Y
yangbo 已提交
587

Z
zhang-daiyue 已提交
588
**示例**
Y
yangbo 已提交
589 590

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

Z
zhang-daiyue 已提交
593
async function example() {
H
huweiqi 已提交
594
  console.info('deleteDemo');
Z
zhang-daiyue 已提交
595 596 597 598 599 600 601 602 603
  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 已提交
604
    console.info('fetch failed, message =', err);
Z
zhang-daiyue 已提交
605 606 607
  }

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

Z
zhang-daiyue 已提交
620
### on
Y
yangbo 已提交
621

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

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

**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
Y
yangbo 已提交
627 628 629

**参数:**

Z
zhang-daiyue 已提交
630 631 632 633
| 参数名   | 类型                 | 必填 | 说明                                                         |
| -------- | -------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
634 635 636 637

**示例:**

```ts
Z
zhang-daiyue 已提交
638
async function example() {
H
huweiqi 已提交
639
  console.info('onDemo');
H
huweiqi 已提交
640 641 642 643 644 645 646 647 648 649 650
  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 已提交
651
    console.error('createPhotoAsset failed, message = ' + err);
H
huweiqi 已提交
652 653 654 655 656
  }
  //sleep 1s
  if (count > 0) {
    console.info("onDemo success");
  } else {
H
huweiqi 已提交
657
    console.error("onDemo fail");
H
huweiqi 已提交
658 659 660 661
  }
  mgr.off('imageChange', () => {
    // stop listening success
  });
Y
yangbo 已提交
662 663 664
}
```

Z
zhang-daiyue 已提交
665
### off
Y
yangbo 已提交
666

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

Z
zhang-daiyue 已提交
669
关闭文件管理库变更通知,使用callback方式返回异步结果。
李云帆 已提交
670 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
### 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                                     | 是   | 是否模糊监听,如果是true注册uri为datashare:///media/album,能监听到所有相册的变化,如果是false只能监听当前uri对应的相册变化 |
| callback  | Callback&lt;[ChangeData](#changedata10)&gt; | 是   | 返回要监听的[ChangeData](#changedata10)                      |

**示例:**

```ts
async function example() {
    console.info('onDemo');
    let fileAsset;
    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) {
        console.error('createPhotoAsset failed, message = ' + err);
    }
    let count = 0;

    mgr.on(fileAsset.uri, false, (changeData) => {
        count++;
        console.info(JSON.stringify(changeData));
        //file had changed, do something
    });
    fileAsset.favorite(true);
    //sleep 1s
    if (count > 0) {
        console.info('onDemo success');
    } else {
        console.error('onDemo fail');
    }
}
```

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

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

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

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

**参数:**

| 参数名   | 类型                                        | 必填 | 说明                                                         |
| -------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
| uri      | string                                      | 是   | FileAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri10)的值 |
| callback | Callback&lt;[ChangeData](#changedata10)&gt; | 否   | 解除指定callback方法的监听                                   |

**示例:**

```ts
async function example() {
    console.info('offDemo');
    let count = 0;
    mgr.on('imageChange', () => {
        count++;
        // 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) {
        console.error('createPhotoAsset failed, message = ' + err);
    }
    //sleep 1s
    if (count == 0) {
        console.info('offDemo success');
    } else {
        console.error('offDemo fail');
    }
}
```

Y
yangbo 已提交
997 998 999 1000 1001 1002 1003 1004 1005 1006 1007
## FileAsset

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

### 属性

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

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


Z
zhang-daiyue 已提交
1012
### get
Y
yangbo 已提交
1013

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

H
huweiqi 已提交
1016
获取FileAsset成员参数。
Y
yangbo 已提交
1017 1018 1019 1020 1021

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

**参数:**

Z
zhang-daiyue 已提交
1022 1023 1024
| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
| member | string | 是    | 成员参数名称例如:ImageVideoKey.URI |
Y
yangbo 已提交
1025 1026

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

Z
zhang-daiyue 已提交
1028
```ts
H
huweiqi 已提交
1029 1030
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1031
async function example() {
H
huweiqi 已提交
1032
  console.info('fileAssetGetDemo');
Z
zhang-daiyue 已提交
1033 1034 1035 1036 1037
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1038
    };
Z
zhang-daiyue 已提交
1039 1040
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1041 1042
    let title = userFileManager.ImageVideoKey.TITLE;
    let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1043 1044
    console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
  } catch (err) {
H
huweiqi 已提交
1045
    console.error('release failed. message = ', err);
Z
zhang-daiyue 已提交
1046
  }
Y
yangbo 已提交
1047 1048 1049
}
```

Z
zhang-daiyue 已提交
1050
### set
Y
yangbo 已提交
1051

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

H
huweiqi 已提交
1054
设置FileAsset成员参数。
Y
yangbo 已提交
1055 1056 1057

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

Z
zhang-daiyue 已提交
1058
**参数:**
Y
yangbo 已提交
1059

Z
zhang-daiyue 已提交
1060 1061 1062 1063
| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
| member | string | 是    | 成员参数名称例如:ImageVideoKey.URI |
| value | string | 是    | 设置成员参数名称,只能修改ImageVideoKey.TITLE的值 |
Y
yangbo 已提交
1064 1065

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

Z
zhang-daiyue 已提交
1067
```ts
H
huweiqi 已提交
1068 1069
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1070
async function example() {
H
huweiqi 已提交
1071
  console.info('fileAssetSetDemo');
Z
zhang-daiyue 已提交
1072 1073 1074 1075 1076
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1077
    };
Z
zhang-daiyue 已提交
1078 1079
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1080 1081
    let title = userFileManager.ImageVideoKey.TITLE;
    fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
1082
  } catch (err) {
H
huweiqi 已提交
1083
    console.error('release failed. message = ', err);
Z
zhang-daiyue 已提交
1084
  }
Y
yangbo 已提交
1085 1086 1087 1088 1089 1090 1091 1092 1093
}
```

### commitModify

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

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

Z
zhang-daiyue 已提交
1094
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105

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

**参数:**

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

**示例:**

Z
zhang-daiyue 已提交
1106
```ts
H
huweiqi 已提交
1107 1108
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1109
async function example() {
H
huweiqi 已提交
1110
  console.info('commitModifyDemo');
Z
zhang-daiyue 已提交
1111 1112 1113 1114 1115 1116 1117
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1118 1119
  let title = userFileManager.ImageVideoKey.TITLE;
  let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1120
  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
H
huweiqi 已提交
1121
  fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
1122 1123
  fileAsset.commitModify((err) => {
    if (err == undefined) {
H
huweiqi 已提交
1124
      let newFileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1125 1126
      console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
    } else {
H
huweiqi 已提交
1127
      console.error('commitModify failed, message =', err);
Z
zhang-daiyue 已提交
1128 1129
    }
  });
Y
yangbo 已提交
1130 1131 1132 1133 1134 1135 1136 1137 1138
}
```

### commitModify

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

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

Z
zhang-daiyue 已提交
1139
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1140 1141 1142 1143 1144 1145 1146 1147 1148

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

**返回值:**

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

Z
zhang-daiyue 已提交
1149
**示例:**  
Y
yangbo 已提交
1150

Z
zhang-daiyue 已提交
1151
```ts
H
huweiqi 已提交
1152 1153
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1154
async function example() {
H
huweiqi 已提交
1155
  console.info('commitModifyDemo');
Z
zhang-daiyue 已提交
1156 1157 1158 1159 1160 1161 1162
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1163 1164
  let title = userFileManager.ImageVideoKey.TITLE;
  let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1165
  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
H
huweiqi 已提交
1166
  fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
1167
  try {
H
huweiqi 已提交
1168 1169
    await fileAsset.commitModify();
    let newFileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1170 1171
    console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
  } catch (err) {
H
huweiqi 已提交
1172
    console.error('release failed. message = ', err);
Z
zhang-daiyue 已提交
1173
  }
Y
yangbo 已提交
1174 1175 1176 1177 1178 1179 1180 1181 1182
}
```

### open

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

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

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

H
huweiqi 已提交
1185
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1186 1187 1188 1189 1190 1191 1192 1193 1194


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

**参数**

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

**示例:**

Z
zhang-daiyue 已提交
1199
```ts
Y
yangbo 已提交
1200
async function example() {
H
huweiqi 已提交
1201
  console.info('openDemo');
H
huweiqi 已提交
1202 1203
   let testFileName = "testFile" + Date.now() + ".jpg";
  const fileAsset = await mgr.createPhotoAsset(testFileName);
Z
zhang-daiyue 已提交
1204 1205 1206
  fileAsset.open('rw', (err, fd) => {
    if (fd != undefined) {
      console.info('File fd' + fd);
H
huweiqi 已提交
1207
      fileAsset.close(fd);
Z
zhang-daiyue 已提交
1208
    } else {
H
huweiqi 已提交
1209
      console.error('File err' + err);
Z
zhang-daiyue 已提交
1210 1211
    }
  });
Y
yangbo 已提交
1212 1213 1214 1215 1216 1217 1218 1219 1220
}
```

### open

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

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

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

H
huweiqi 已提交
1223
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236

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

**参数:**

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

**返回值:**

| 类型                    | 说明            |
| --------------------- | ------------- |
1237
| Promise&lt;number&gt; | Promise返回文件描述符 |
Y
yangbo 已提交
1238 1239 1240

**示例:**

Z
zhang-daiyue 已提交
1241
```ts
Y
yangbo 已提交
1242
async function example() {
H
huweiqi 已提交
1243
  console.info('openDemo');
Z
zhang-daiyue 已提交
1244
  try {
H
huweiqi 已提交
1245 1246
    let testFileName = "testFile" + Date.now() + ".jpg";
    const fileAsset = await mgr.createPhotoAsset(testFileName);
H
huweiqi 已提交
1247
    let fd = await fileAsset.open('rw');
Z
zhang-daiyue 已提交
1248 1249
    if (fd != undefined) {
      console.info('File fd' + fd);
H
huweiqi 已提交
1250
      fileAsset.close(fd);
Z
zhang-daiyue 已提交
1251
    } else {
H
huweiqi 已提交
1252
      console.error(' open File fail');
Z
zhang-daiyue 已提交
1253 1254
    }
  } catch (err) {
H
huweiqi 已提交
1255
    console.error('open Demo err' + err);
Z
zhang-daiyue 已提交
1256
  }
Y
yangbo 已提交
1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276
}
```

### 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 已提交
1277
```ts
H
huweiqi 已提交
1278 1279
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1280
async function example() {
H
huweiqi 已提交
1281
  console.info('closeDemo');
Z
zhang-daiyue 已提交
1282 1283 1284 1285 1286
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1287
    };
Z
zhang-daiyue 已提交
1288 1289 1290 1291 1292 1293 1294 1295
    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 已提交
1296
        console.error('close failed, message = ' + err);
Z
zhang-daiyue 已提交
1297
      }
Y
yangbo 已提交
1298
    });
Z
zhang-daiyue 已提交
1299
  } catch (err) {
H
huweiqi 已提交
1300
    console.error('close failed, message = ' + err);
Z
zhang-daiyue 已提交
1301
  }
Y
yangbo 已提交
1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326
}
```

### close

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

Z
zhang-daiyue 已提交
1327
```ts
H
huweiqi 已提交
1328 1329
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1330
async function example() {
H
huweiqi 已提交
1331
  console.info('closeDemo');
Z
zhang-daiyue 已提交
1332 1333 1334 1335 1336
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1337
    };
Z
zhang-daiyue 已提交
1338 1339 1340 1341
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    const asset = await fetchResult.getFirstObject();
    let fd = await asset.open('rw');
    console.info('file fd', fd);
H
huweiqi 已提交
1342
    await asset.close(fd);
Z
zhang-daiyue 已提交
1343 1344
    console.info('asset close succeed.');
  } catch (err) {
H
huweiqi 已提交
1345
    console.error('close failed, message = ' + err);
Z
zhang-daiyue 已提交
1346
  }
Y
yangbo 已提交
1347 1348 1349 1350 1351 1352 1353 1354 1355
}
```

### getThumbnail

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

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

Z
zhang-daiyue 已提交
1356
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1357 1358 1359 1360 1361 1362 1363

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

**参数:**

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

**示例:**

Z
zhang-daiyue 已提交
1368
```ts
H
huweiqi 已提交
1369 1370
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1371
async function example() {
H
huweiqi 已提交
1372
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1373 1374 1375 1376 1377 1378 1379
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1380
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1381 1382 1383 1384
  asset.getThumbnail((err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
H
huweiqi 已提交
1385
      console.error('getThumbnail fail', err);
Z
zhang-daiyue 已提交
1386 1387
    }
  });
Y
yangbo 已提交
1388 1389 1390 1391 1392
}
```

### getThumbnail

H
huweiqi 已提交
1393
getThumbnail(size: image.Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
Y
yangbo 已提交
1394 1395 1396

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

Z
zhang-daiyue 已提交
1397
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1398 1399 1400 1401 1402 1403 1404

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

**参数:**

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

**示例:**

Z
zhang-daiyue 已提交
1410
```ts
H
huweiqi 已提交
1411 1412
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1413
async function example() {
H
huweiqi 已提交
1414
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1415 1416 1417 1418 1419 1420 1421 1422
  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 已提交
1423
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1424 1425 1426 1427
  asset.getThumbnail(size, (err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
H
huweiqi 已提交
1428
      console.error('getThumbnail fail', err);
Y
yangbo 已提交
1429
    }
Z
zhang-daiyue 已提交
1430
  });
Y
yangbo 已提交
1431 1432 1433
}
```

Z
zhang-daiyue 已提交
1434
### getThumbnail
Y
yangbo 已提交
1435

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

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

Z
zhang-daiyue 已提交
1440
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1441 1442 1443 1444 1445

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

**参数:**

Z
zhang-daiyue 已提交
1446 1447
| 参数名  | 类型             | 必填   | 说明    |
| ---- | -------------- | ---- | ----- |
1448
| size | [image.Size](js-apis-image.md#size) | 否    | 缩略图尺寸 |
Y
yangbo 已提交
1449 1450 1451

**返回值:**

Z
zhang-daiyue 已提交
1452 1453
| 类型                            | 说明                    |
| ----------------------------- | --------------------- |
Z
zengyawen 已提交
1454
| Promise&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | Promise返回缩略图的PixelMap |
Y
yangbo 已提交
1455 1456 1457

**示例:**

Z
zhang-daiyue 已提交
1458
```ts
H
huweiqi 已提交
1459 1460
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1461
async function example() {
H
huweiqi 已提交
1462
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1463 1464 1465 1466 1467 1468 1469 1470
  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 已提交
1471
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1472 1473 1474
  asset.getThumbnail(size).then((pixelMap) => {
    console.info('getThumbnail successful ' + pixelMap);
  }).catch((err) => {
H
huweiqi 已提交
1475
    console.error('getThumbnail fail' + err);
Z
zhang-daiyue 已提交
1476
  });
Y
yangbo 已提交
1477 1478 1479
}
```

Z
zhang-daiyue 已提交
1480 1481 1482
### favorite

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

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

Z
zhang-daiyue 已提交
1486
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1487 1488 1489 1490 1491

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

**参数:**

Z
zhang-daiyue 已提交
1492 1493 1494 1495
| 参数名        | 类型                        | 必填   | 说明                                 |
| ---------- | ------------------------- | ---- | ---------------------------------- |
| isFavorite | boolean                   | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
| callback   | AsyncCallback&lt;void&gt; | 是    | 回调返回空                              |
Y
yangbo 已提交
1496 1497 1498

**示例:**

Z
zhang-daiyue 已提交
1499
```ts
H
huweiqi 已提交
1500 1501
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1502
async function example() {
H
huweiqi 已提交
1503
  console.info('favoriteDemo');
Z
zhang-daiyue 已提交
1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514
  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 已提交
1515
      console.error("favorite failed with error:" + err);
Z
zhang-daiyue 已提交
1516 1517
    }
  });
Y
yangbo 已提交
1518 1519 1520
}
```

Z
zhang-daiyue 已提交
1521 1522 1523
### favorite

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

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

Z
zhang-daiyue 已提交
1527
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1528 1529 1530

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

Z
zhang-daiyue 已提交
1531 1532 1533 1534 1535 1536
**参数:**

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

Y
yangbo 已提交
1537 1538
**返回值:**

Z
zhang-daiyue 已提交
1539 1540 1541
| 类型                  | 说明         |
| ------------------- | ---------- |
| Promise&lt;void&gt; | Promise返回空 |
Y
yangbo 已提交
1542 1543 1544

**示例:**

Z
zhang-daiyue 已提交
1545
```ts
H
huweiqi 已提交
1546 1547
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1548
async function example() {
H
huweiqi 已提交
1549
  console.info('favoriteDemo');
Z
zhang-daiyue 已提交
1550 1551 1552 1553 1554 1555 1556 1557 1558 1559
  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 已提交
1560
    console.error("favorite failed with error:" + err);
Z
zhang-daiyue 已提交
1561
  });
Y
yangbo 已提交
1562 1563 1564
}
```

Z
zhang-daiyue 已提交
1565
## FetchResult
Y
yangbo 已提交
1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584

文件检索结果集。

### getCount

getCount(): number

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

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

**返回值**

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

**示例**

Z
zhang-daiyue 已提交
1585
```ts
H
huweiqi 已提交
1586 1587
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1588
async function example() {
H
huweiqi 已提交
1589
  console.info('getCountDemo');
Z
zhang-daiyue 已提交
1590 1591 1592 1593 1594 1595 1596
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const fetchCount = fetchResult.getCount();
H
huweiqi 已提交
1597
  console.info('fetchCount = ', fetchCount);
Y
yangbo 已提交
1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616
}
```

### isAfterLast

isAfterLast(): boolean

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

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

**返回值**

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

**示例**

Z
zhang-daiyue 已提交
1617
```ts
H
huweiqi 已提交
1618 1619
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1620
async function example() {
Z
zhang-daiyue 已提交
1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634
  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 已提交
1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647
}
```

### close

close(): void

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

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

**示例**

Z
zhang-daiyue 已提交
1648
```ts
H
huweiqi 已提交
1649 1650
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1651
async function example() {
H
huweiqi 已提交
1652
  console.info('fetchResultCloseDemo');
Z
zhang-daiyue 已提交
1653 1654 1655 1656 1657
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
H
huweiqi 已提交
1658 1659 1660 1661 1662
  try {
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    await fetchResult.close();
    console.info('close succeed.');
  } catch (err) {
H
huweiqi 已提交
1663
    console.error('close fail. message = ' + err);
H
huweiqi 已提交
1664
  }
Y
yangbo 已提交
1665 1666 1667 1668 1669
}
```

### getFirstObject

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

Z
zhang-daiyue 已提交
1672
获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。
Y
yangbo 已提交
1673 1674 1675 1676 1677 1678 1679

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

**参数**

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

**示例**

Z
zhang-daiyue 已提交
1684
```ts
H
huweiqi 已提交
1685 1686
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1687
async function example() {
H
huweiqi 已提交
1688
  console.info('getFirstObjectDemo');
Z
zhang-daiyue 已提交
1689 1690 1691 1692 1693 1694 1695 1696
  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 已提交
1697
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1698
    } else {
H
huweiqi 已提交
1699
      console.error("fileAsset failed with err:" + err);
Z
zhang-daiyue 已提交
1700 1701
    }
  });
Y
yangbo 已提交
1702 1703 1704 1705 1706
}
```

### getFirstObject

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

Z
zhang-daiyue 已提交
1709
获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。
Y
yangbo 已提交
1710 1711 1712 1713 1714 1715 1716

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

**返回值**

| 类型                                    | 说明                       |
| --------------------------------------- | -------------------------- |
H
huweiqi 已提交
1717
| Promise&lt;T&gt; | Promise方式返回 |
Y
yangbo 已提交
1718 1719 1720

**示例**

Z
zhang-daiyue 已提交
1721
```ts
H
huweiqi 已提交
1722 1723
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1724
async function example() {
H
huweiqi 已提交
1725
  console.info('getFirstObjectDemo');
Z
zhang-daiyue 已提交
1726 1727 1728 1729 1730 1731 1732
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1733
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1734 1735 1736 1737 1738
}
```

### getNextObject

Z
zhang-daiyue 已提交
1739
 getNextObject(callback: AsyncCallback&lt;T&gt;): void
Y
yangbo 已提交
1740 1741 1742 1743 1744 1745 1746 1747 1748

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

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

**参数**

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

**示例**

Z
zhang-daiyue 已提交
1753
```ts
H
huweiqi 已提交
1754 1755
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1756
async function example() {
H
huweiqi 已提交
1757
  console.info('getNextObjectDemo');
Z
zhang-daiyue 已提交
1758 1759 1760 1761 1762 1763 1764 1765 1766 1767
  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 已提交
1768
        console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1769
      } else {
H
huweiqi 已提交
1770
        console.error("fileAsset failed with err: " + err);
Z
zhang-daiyue 已提交
1771 1772 1773
      }
    });
  }
Y
yangbo 已提交
1774 1775 1776 1777 1778
}
```

### getNextObject

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

Z
zhang-daiyue 已提交
1781
获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。
Y
yangbo 已提交
1782 1783 1784 1785 1786 1787 1788

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

**返回值**

| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
Z
zhang-daiyue 已提交
1789
| Promise&lt;T&gt; | 返回结果集中下一个对象 |
Y
yangbo 已提交
1790 1791 1792

**示例**

Z
zhang-daiyue 已提交
1793
```ts
H
huweiqi 已提交
1794 1795
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1796
async function example() {
H
huweiqi 已提交
1797
  console.info('getNextObjectDemo');
Z
zhang-daiyue 已提交
1798 1799 1800 1801 1802 1803 1804 1805 1806
  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 已提交
1807
    console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1808
  }
Y
yangbo 已提交
1809 1810 1811 1812 1813
}
```

### getLastObject

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

Z
zhang-daiyue 已提交
1816
获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。
Y
yangbo 已提交
1817 1818 1819 1820 1821 1822 1823

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

**参数**

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

**示例**

Z
zhang-daiyue 已提交
1828
```ts
H
huweiqi 已提交
1829 1830
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1831
async function example() {
H
huweiqi 已提交
1832
  console.info('getLastObjectDemo');
Z
zhang-daiyue 已提交
1833 1834 1835 1836 1837 1838 1839 1840
  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 已提交
1841
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1842
    } else {
H
huweiqi 已提交
1843
      console.error("fileAsset failed with err: " + err);
Z
zhang-daiyue 已提交
1844 1845
    }
  });
Y
yangbo 已提交
1846 1847 1848 1849 1850
}
```

### getLastObject

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

Z
zhang-daiyue 已提交
1853
获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。
Y
yangbo 已提交
1854 1855 1856 1857 1858 1859 1860

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

**返回值**

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

**示例**

Z
zhang-daiyue 已提交
1865
```ts
H
huweiqi 已提交
1866 1867
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1868
async function example() {
H
huweiqi 已提交
1869
  console.info('getLastObjectDemo');
Z
zhang-daiyue 已提交
1870 1871 1872 1873 1874 1875 1876
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getLastObject();
H
huweiqi 已提交
1877
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1878 1879 1880 1881 1882
}
```

### getPositionObject

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

Z
zhang-daiyue 已提交
1885
获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。
Y
yangbo 已提交
1886 1887 1888 1889 1890 1891 1892 1893

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

**参数**

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

**示例**

Z
zhang-daiyue 已提交
1898
```ts
H
huweiqi 已提交
1899 1900
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1901
async function example() {
H
huweiqi 已提交
1902
  console.info('getPositionObjectDemo');
Z
zhang-daiyue 已提交
1903 1904 1905 1906 1907 1908 1909 1910
  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 已提交
1911
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1912
    } else {
H
huweiqi 已提交
1913
      console.error("fileAsset failed with err: " + err);
Z
zhang-daiyue 已提交
1914 1915
    }
  });
Y
yangbo 已提交
1916 1917 1918 1919 1920
}
```

### getPositionObject

Z
zhang-daiyue 已提交
1921
getPositionObject(index: number): Promise&lt;T&gt;
Y
yangbo 已提交
1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936

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

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

**参数**

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

**返回值**

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

**示例**

Z
zhang-daiyue 已提交
1941
```ts
H
huweiqi 已提交
1942 1943
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1944
async function example() {
H
huweiqi 已提交
1945
  console.info('getPositionObjectDemo');
Z
zhang-daiyue 已提交
1946 1947 1948 1949 1950 1951 1952
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getPositionObject(0);
H
huweiqi 已提交
1953
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972
}
```

## Album

实体相册

### 属性

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

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

Z
zhang-daiyue 已提交
1973 1974 1975 1976
### getPhotoAssets

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

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

H
huweiqi 已提交
1979
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Z
zhang-daiyue 已提交
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992

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

**参数**

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

**示例**

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

Z
zhang-daiyue 已提交
1995
async function example() {
H
huweiqi 已提交
1996
  console.info('albumGetFileAssetsDemoCallback');
Z
zhang-daiyue 已提交
1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009

  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 已提交
2010
      console.info("album getPhotoAssets successfully, getCount: " + albumFetchResult.getCount());
Z
zhang-daiyue 已提交
2011
    } else {
H
huweiqi 已提交
2012
      console.error("album getPhotoAssets failed with error: " + err);
Z
zhang-daiyue 已提交
2013 2014 2015 2016 2017 2018 2019 2020
    }
  });
}
```
### getPhotoAssets

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

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

H
huweiqi 已提交
2023
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Z
zhang-daiyue 已提交
2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036

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

**参数**

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

**示例**

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

Z
zhang-daiyue 已提交
2039
async function example() {
H
huweiqi 已提交
2040
  console.info('albumGetFileAssetsDemoPromise');
Z
zhang-daiyue 已提交
2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052

  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 已提交
2053
    console.info("album getFileAssets successfully, getCount: " + albumFetchResult.getCount());
Z
zhang-daiyue 已提交
2054
  }).catch((err) => {
H
huweiqi 已提交
2055
    console.error("album getFileAssets failed with error: " + err);
Z
zhang-daiyue 已提交
2056 2057 2058 2059
  });
}
```

Y
yangbo 已提交
2060 2061 2062 2063 2064 2065
### commitModify

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

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

Z
zhang-daiyue 已提交
2066
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
Y
yangbo 已提交
2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078

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

**参数**

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

**示例**

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

Z
zhang-daiyue 已提交
2081
async function example() {
H
huweiqi 已提交
2082
  console.info('albumCommitModifyDemo');
Z
zhang-daiyue 已提交
2083 2084 2085 2086 2087 2088 2089 2090 2091
  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 已提交
2092
      console.error("commitModify failed with error: " + err);
Z
zhang-daiyue 已提交
2093 2094 2095 2096
    } else {
      console.info("commitModify successfully");
    }
  });
Y
yangbo 已提交
2097 2098 2099 2100 2101 2102 2103 2104 2105
}
```

### commitModify

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

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

Z
zhang-daiyue 已提交
2106
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
Y
yangbo 已提交
2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118

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

**返回值**

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

**示例**

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

Z
zhang-daiyue 已提交
2121
async function example() {
H
huweiqi 已提交
2122
  console.info('albumCommitModifyDemo');
Z
zhang-daiyue 已提交
2123 2124 2125 2126 2127 2128 2129
  let predicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions = {
    predicates: predicates
  };
  try {
    var albumList = await mgr.getPhotoAlbums(albumFetchOptions);
  } catch (err) {
H
huweiqi 已提交
2130
    console.error('getPhotoAlbums failed. message = ', err);
Z
zhang-daiyue 已提交
2131 2132 2133 2134 2135 2136
  }
  const album = await albumList.getFirstObject();
  album.albumName = 'hello';
  album.commitModify().then(() => {
    console.info("commitModify successfully");
  }).catch((err) => {
H
huweiqi 已提交
2137
    console.error("commitModify failed with error: " + err);
Z
zhang-daiyue 已提交
2138
  });
Y
yangbo 已提交
2139 2140 2141
}
```

Z
zhang-daiyue 已提交
2142
## PrivateAlbum
H
huweiqi 已提交
2143 2144

系统相册。
Z
zhang-daiyue 已提交
2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158

### 属性

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

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

### getPhotoAssets
Y
yangbo 已提交
2159

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

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

H
huweiqi 已提交
2164
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
2165 2166 2167 2168 2169

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

**参数**

Z
zhang-daiyue 已提交
2170 2171 2172 2173
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
| callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是   | callback返回图片和视频数据结果集 |
Y
yangbo 已提交
2174 2175 2176 2177

**示例**

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

Z
zhang-daiyue 已提交
2180
async function example() {
H
huweiqi 已提交
2181
  console.info('privateAlbumGetFileAssetsDemoCallback');
Z
zhang-daiyue 已提交
2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193
  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 已提交
2194
      console.error('getFileAssets failed, message = ', err);
Z
zhang-daiyue 已提交
2195 2196
    }
  });
Y
yangbo 已提交
2197 2198
}

Z
zhang-daiyue 已提交
2199 2200
```
### getPhotoAssets
Y
yangbo 已提交
2201

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

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

H
huweiqi 已提交
2206
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
2207 2208 2209 2210 2211

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

**参数**

Z
zhang-daiyue 已提交
2212 2213 2214 2215 2216 2217 2218 2219 2220
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |

**返回值**

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

**示例**

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

Z
zhang-daiyue 已提交
2227
async function example() {
H
huweiqi 已提交
2228
  console.info('privateAlbumGetFileAssetsDemoPromise');
Z
zhang-daiyue 已提交
2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239
  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 已提交
2240
```
Z
zhang-daiyue 已提交
2241 2242 2243
### delete

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

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

Z
zhang-daiyue 已提交
2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260
**需要权限**: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 已提交
2261 2262
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276
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 已提交
2277
      console.error('trashAlbum.delete failed, message = ', err);
Z
zhang-daiyue 已提交
2278 2279 2280 2281 2282 2283 2284
    } else {
      console.info('trashAlbum.delete successfully');
    }
  });
}
```
### delete
Y
yangbo 已提交
2285

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

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

Z
zhang-daiyue 已提交
2290
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2291 2292 2293 2294 2295

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

**参数**

Z
zhang-daiyue 已提交
2296 2297 2298
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 相册uri |
Y
yangbo 已提交
2299 2300 2301

**返回值**

Z
zhang-daiyue 已提交
2302 2303 2304
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
| Promise&lt;void&gt;| 回调返回空 |
Y
yangbo 已提交
2305 2306 2307 2308

**示例**

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

Z
zhang-daiyue 已提交
2311
async function example() {
H
huweiqi 已提交
2312
  console.info('privateAlbumDeleteDemoPromise');
Z
zhang-daiyue 已提交
2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325
  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 已提交
2326
    console.error('trashAlbum.delete failed, message = ', err);
Z
zhang-daiyue 已提交
2327 2328
  });
}   
Y
yangbo 已提交
2329 2330
```

Z
zhang-daiyue 已提交
2331
### recover
Y
yangbo 已提交
2332

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

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

H
huweiqi 已提交
2337
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2338 2339 2340 2341

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

**参数**
Z
zhang-daiyue 已提交
2342 2343 2344 2345 2346

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

**示例**

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

Z
zhang-daiyue 已提交
2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366
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 已提交
2367
      console.error('trashAlbum.recover failed, message = ', err);
Z
zhang-daiyue 已提交
2368 2369
    } else {
      console.info('trashAlbum.recover successfully');
Y
yangbo 已提交
2370
    }
Z
zhang-daiyue 已提交
2371
  });
Y
yangbo 已提交
2372 2373
}
```
Z
zhang-daiyue 已提交
2374
### recover
Y
yangbo 已提交
2375

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

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

H
huweiqi 已提交
2380
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2381 2382 2383 2384 2385

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

**参数**

Z
zhang-daiyue 已提交
2386 2387 2388
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 相册uri |
Y
yangbo 已提交
2389 2390 2391

**返回值**

Z
zhang-daiyue 已提交
2392 2393 2394
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
| Promise&lt;void&gt;| 回调返回空 |
Y
yangbo 已提交
2395 2396 2397 2398

**示例**

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

Z
zhang-daiyue 已提交
2401
async function example() {
H
huweiqi 已提交
2402
  console.info('privateAlbumRecoverDemoPromise');
Z
zhang-daiyue 已提交
2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415
  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 已提交
2416
    console.error('trashAlbum.recover failed, message = ', err);
Z
zhang-daiyue 已提交
2417
  });
Y
yangbo 已提交
2418 2419 2420
}
```

Z
zhang-daiyue 已提交
2421 2422 2423 2424
## MemberType

成员类型。

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

H
huweiqi 已提交
2427 2428 2429 2430 2431
| 名称  |  类型 |  可读  |  可写  |  说明  |
| ----- |  ---- |  ---- |  ---- |  ---- |
| number |  number | 是 | 是 | number类型 | 
| string |  string | 是 | 是 | string类型 | 
| boolean |  boolean | 是 | 是 | boolean类型 | 
Z
zhang-daiyue 已提交
2432 2433 2434 2435 2436

## ChangeEvent

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

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

H
huweiqi 已提交
2439
| 名称  |  类型 |  可读  |  可写  |  说明 |
H
huweiqi 已提交
2440 2441 2442 2443 2444 2445 2446
| ----- |  ---- |  ---- |  ---- |  ---- |
| deviceChange |  string | 是 | 是 |  设备 |
| albumChange |  string | 是 | 是 |  相册 |
| imageChange |  string | 是 | 是 |  图片 |
| audioChange |  string | 是 | 是 |  音频 |
| videoChange |  string | 是 | 是 |  视频 |
| remoteFileChange |  string | 是 | 是 |  远程文件 |
Z
zhang-daiyue 已提交
2447

Y
yangbo 已提交
2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460
## PeerInfo

注册设备的信息。

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

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


Z
zhang-daiyue 已提交
2461 2462 2463
## FileType

枚举,媒体文件类型。
Y
yangbo 已提交
2464 2465 2466

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

H
huweiqi 已提交
2467 2468 2469 2470 2471
| 名称  |  值 |  说明 |
| ----- |  ---- |  ---- |
| IMAGE |  1 |  图片 |
| VIDEO |  2 |  视频 |
| AUDIO |  3 |  音频 |
Y
yangbo 已提交
2472

Z
zhang-daiyue 已提交
2473
## PrivateAlbumType
Y
yangbo 已提交
2474

Z
zhang-daiyue 已提交
2475
枚举,系统相册类型。
Y
yangbo 已提交
2476 2477 2478

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

H
huweiqi 已提交
2479 2480 2481 2482
| 名称    |  值 |   说明   |
| -----   |  ----  |   ----  |
| TYPE_FAVORITE |  0 |  收藏夹相册 |
| TYPE_TRASH |  1 |  回收站相册 |
Z
zhang-daiyue 已提交
2483 2484


Y
yangbo 已提交
2485 2486 2487 2488 2489 2490 2491

## AudioKey

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

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

H
huweiqi 已提交
2492
| 名称          |   值              | 说明                                                       |
Y
yangbo 已提交
2493 2494 2495 2496
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 文件uri                                                   |
| DISPLAY_NAME  | display_name        | 显示名字                                                   |
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
H
huweiqi 已提交
2497
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
Y
yangbo 已提交
2498 2499 2500 2501
| TITLE         | title               | 文件标题                                                   |
| ARTIST        | artist              | 作者                                                   |
| AUDIOALBUM    | audio_album         | 专辑                                                   |
| DURATION      | duration            | 持续时间(单位:毫秒)                                    |
Z
zhang-daiyue 已提交
2502
| FAVORITE      | favorite            | 收藏                                                   |
Y
yangbo 已提交
2503 2504 2505 2506 2507 2508 2509

## ImageVideoKey

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

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

H
huweiqi 已提交
2510
| 名称          | 值              | 说明                                                       |
Y
yangbo 已提交
2511 2512
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 文件uri                                                   |
Z
zhang-daiyue 已提交
2513
| FILE_TYPE     | file_type           | 媒体文件类型                                              |
Y
yangbo 已提交
2514 2515
| DISPLAY_NAME  | display_name        | 显示名字                                                   |
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
H
huweiqi 已提交
2516
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
Z
zhang-daiyue 已提交
2517
| TITLE         | title               | 文件标题                                                   |
Y
yangbo 已提交
2518 2519 2520 2521
| DURATION      | duration            | 持续时间(单位:毫秒)                                    |
| WIDTH         | width               | 图片宽度(单位:像素)                                    |
| HEIGHT        | height              | 图片高度(单位:像素)                                      |
| DATE_TAKEN    | date_taken          | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)                |
Z
zhang-daiyue 已提交
2522 2523
| ORIENTATION   | orientation         | 图片文件的方向                                             |
| FAVORITE      | favorite            | 收藏                                                    |
Y
yangbo 已提交
2524 2525 2526 2527 2528 2529 2530

## AlbumKey

枚举,相册关键信息。

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

H
huweiqi 已提交
2531
| 名称          | 值              | 说明                                                       |
Y
yangbo 已提交
2532 2533
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 相册uri                                                   |
Z
zhang-daiyue 已提交
2534 2535
| FILE_TYPE     | file_type           | 媒体文件类型                                              |
| ALBUM_NAME    | album_name          | 相册名字                                                   |
Y
yangbo 已提交
2536
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
H
huweiqi 已提交
2537
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
Y
yangbo 已提交
2538 2539


Z
zhang-daiyue 已提交
2540
## FetchOptions
Y
yangbo 已提交
2541 2542 2543 2544 2545

检索条件。

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

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

Z
zhang-daiyue 已提交
2551
## AlbumFetchOptions
Y
yangbo 已提交
2552

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

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

H
huweiqi 已提交
2557 2558 2559
| 名称                   | 类型                | 可读 | 可写 | 说明                                              |
| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ |
| predicates           | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md) | 是   | 是   | 谓词查询,显示过滤条件 |
Y
yangbo 已提交
2560

C
caochuan 已提交
2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597
## 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是Album的uri类型时,更改Album的FileAssets的详细信息     |

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

枚举,notify类型。

**系统能力**:以下各项对应的系统能力均为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 | datashare:///media/Photo      | 默认PhotoAsset的Uri,与forSubUri{true}一起使用,将接收所有PhotoAsset的更改通知 |
| DEFAULT_ALBUM_URI | datashare:///media/PhotoAlbum | 默认相册的Uri,与forSubUri{true}一起使用,将接收所有相册的更改通知 |
| DEFAULT_AUDIO_URI | datashare:///media/Audio      | 默认AudioAsset的Uri,与forSubUri{true}一起使用,将接收所有AudioAsset的更改通知 |