js-apis-userFileManager.md 79.9 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 40

**返回值:**

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

**示例:**

```ts
const context = getContext(this);
H
huweiqi 已提交
41
let mgr = userFileManager.getUserFileMgr(context);
Y
yangbo 已提交
42
```
W
wangqinxiao 已提交
43

Y
yangbo 已提交
44 45
## UserFileManager

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

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


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



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

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

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

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

**示例:**

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

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


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

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

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

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

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

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

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

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

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

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

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

**参数:**

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

**返回值**

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

**示例:**

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

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

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

Z
zhang-daiyue 已提交
262 263

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

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

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

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

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

**示例:**

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

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

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

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

Z
zhang-daiyue 已提交
309
获取相册,使用callback方式返回结果。
Y
yangbo 已提交
310 311 312

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

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

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

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

**返回值**

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

**示例:**

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

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

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

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


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

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

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

**参数:**

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

**示例:**

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

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

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


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

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

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

**参数:**

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

**返回值**

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

**示例:**

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

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

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


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

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

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

**参数:**

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

**示例:**

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

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

H
huweiqi 已提交
452
  mgr.getAudioAssets(fetchOptions, async (err, fetchResult) => {
Z
zhang-daiyue 已提交
453 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 {
      console.info('fetchFileResult fail' + err);
Y
yangbo 已提交
461
    }
H
huweiqi 已提交
462
  });
Y
yangbo 已提交
463 464 465
}
```

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

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


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

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

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

**参数:**

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

**返回值**

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

**示例:**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

Z
zhang-daiyue 已提交
674 675 676 677
| 参数名   | 类型                 | 必填 | 说明                                                         |
| -------- | -------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
678 679 680 681

**示例:**

```ts
Z
zhang-daiyue 已提交
682
async function example() {
H
huweiqi 已提交
683
  console.info('offDemo');
H
huweiqi 已提交
684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707
  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) {
    console.info('createPhotoAsset failed, message = ' + err);
  }
  //sleep 1s
  if (count == 0) {
    console.info("offDemo success");
  } else {
    console.info("offDemo fail");
  }
Y
yangbo 已提交
708 709 710 711 712
}
```

### getActivePeers

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

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

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

**参数:**

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

**示例:**

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

### getActivePeers

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

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

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

**返回值:**

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

**示例:**

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

### getAllPeers

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

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

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

**参数:**

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

**示例:**

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

### getAllPeers

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

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

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

**返回值:**

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

**示例:**

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

### release

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

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

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

**参数:**

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

**示例:**

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

### release

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

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

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

**返回值:**

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

**示例:**

```ts
Z
zhang-daiyue 已提交
893 894 895 896 897 898 899 900
async function example() {
  console.info('releaseDemo');
  try {
    await mgr.release();
    console.info('release ok.');
  } catch (err) {
    console.info('release failed. message = ', err);
  }
Y
yangbo 已提交
901 902 903 904 905 906 907 908 909 910 911 912 913 914
}
```

## FileAsset

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

### 属性

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

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


Z
zhang-daiyue 已提交
919
### get
Y
yangbo 已提交
920

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

H
huweiqi 已提交
923
获取FileAsset成员参数。
Y
yangbo 已提交
924 925 926 927 928

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

**参数:**

Z
zhang-daiyue 已提交
929 930 931
| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
| member | string | 是    | 成员参数名称例如:ImageVideoKey.URI |
Y
yangbo 已提交
932 933

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

Z
zhang-daiyue 已提交
935
```ts
H
huweiqi 已提交
936 937
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
938
async function example() {
H
huweiqi 已提交
939
  console.info('fileAssetGetDemo');
Z
zhang-daiyue 已提交
940 941 942 943 944
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
945
    };
Z
zhang-daiyue 已提交
946 947
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
948 949
    let title = userFileManager.ImageVideoKey.TITLE;
    let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
950 951 952 953
    console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
  } catch (err) {
    console.info('release failed. message = ', err);
  }
Y
yangbo 已提交
954 955 956
}
```

Z
zhang-daiyue 已提交
957
### set
Y
yangbo 已提交
958

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

H
huweiqi 已提交
961
设置FileAsset成员参数。
Y
yangbo 已提交
962 963 964

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

Z
zhang-daiyue 已提交
965
**参数:**
Y
yangbo 已提交
966

Z
zhang-daiyue 已提交
967 968 969 970
| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
| member | string | 是    | 成员参数名称例如:ImageVideoKey.URI |
| value | string | 是    | 设置成员参数名称,只能修改ImageVideoKey.TITLE的值 |
Y
yangbo 已提交
971 972

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

Z
zhang-daiyue 已提交
974
```ts
H
huweiqi 已提交
975 976
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
977
async function example() {
H
huweiqi 已提交
978
  console.info('fileAssetSetDemo');
Z
zhang-daiyue 已提交
979 980 981 982 983
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
984
    };
Z
zhang-daiyue 已提交
985 986
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
987 988
    let title = userFileManager.ImageVideoKey.TITLE;
    fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
989 990 991
  } catch (err) {
    console.info('release failed. message = ', err);
  }
Y
yangbo 已提交
992 993 994 995 996 997 998 999 1000
}
```

### commitModify

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

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

Z
zhang-daiyue 已提交
1001
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012

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

**参数:**

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

**示例:**

Z
zhang-daiyue 已提交
1013
```ts
H
huweiqi 已提交
1014 1015
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1016
async function example() {
H
huweiqi 已提交
1017
  console.info('commitModifyDemo');
Z
zhang-daiyue 已提交
1018 1019 1020 1021 1022 1023 1024
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1025 1026
  let title = userFileManager.ImageVideoKey.TITLE;
  let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1027
  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
H
huweiqi 已提交
1028
  fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
1029 1030
  fileAsset.commitModify((err) => {
    if (err == undefined) {
H
huweiqi 已提交
1031
      let newFileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1032 1033 1034 1035 1036
      console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
    } else {
      console.info('commitModify failed, message =', err);
    }
  });
Y
yangbo 已提交
1037 1038 1039 1040 1041 1042 1043 1044 1045
}
```

### commitModify

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

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

Z
zhang-daiyue 已提交
1046
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1047 1048 1049 1050 1051 1052 1053 1054 1055

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

**返回值:**

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

Z
zhang-daiyue 已提交
1056
**示例:**  
Y
yangbo 已提交
1057

Z
zhang-daiyue 已提交
1058
```ts
H
huweiqi 已提交
1059 1060
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1061
async function example() {
H
huweiqi 已提交
1062
  console.info('commitModifyDemo');
Z
zhang-daiyue 已提交
1063 1064 1065 1066 1067 1068 1069
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1070 1071
  let title = userFileManager.ImageVideoKey.TITLE;
  let fileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1072
  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
H
huweiqi 已提交
1073
  fileAsset.set(title.toString(), "newTitle");
Z
zhang-daiyue 已提交
1074
  try {
H
huweiqi 已提交
1075 1076
    await fileAsset.commitModify();
    let newFileAssetTitle = fileAsset.get(title.toString());
Z
zhang-daiyue 已提交
1077 1078 1079 1080
    console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
  } catch (err) {
    console.info('release failed. message = ', err);
  }
Y
yangbo 已提交
1081 1082 1083 1084 1085 1086 1087 1088 1089
}
```

### open

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

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

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

H
huweiqi 已提交
1092
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105


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

**参数**

| 参数名      | 类型                          | 必填   | 说明                                  |
| -------- | --------------------------- | ---- | ----------------------------------- |
| mode     | string                      | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
| callback | AsyncCallback&lt;number&gt; | 是    | 回调返回文件句柄                            |

**示例:**

Z
zhang-daiyue 已提交
1106
```ts
Y
yangbo 已提交
1107
async function example() {
H
huweiqi 已提交
1108
  console.info('openDemo');
H
huweiqi 已提交
1109 1110
   let testFileName = "testFile" + Date.now() + ".jpg";
  const fileAsset = await mgr.createPhotoAsset(testFileName);
Z
zhang-daiyue 已提交
1111 1112 1113
  fileAsset.open('rw', (err, fd) => {
    if (fd != undefined) {
      console.info('File fd' + fd);
H
huweiqi 已提交
1114
      fileAsset.close(fd);
Z
zhang-daiyue 已提交
1115 1116 1117 1118
    } else {
      console.info('File err' + err);
    }
  });
Y
yangbo 已提交
1119 1120 1121 1122 1123 1124 1125 1126 1127
}
```

### open

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

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

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

H
huweiqi 已提交
1130
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147

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

**参数:**

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

**返回值:**

| 类型                    | 说明            |
| --------------------- | ------------- |
| Promise&lt;number&gt; | Promise返回文件句柄 |

**示例:**

Z
zhang-daiyue 已提交
1148
```ts
Y
yangbo 已提交
1149
async function example() {
H
huweiqi 已提交
1150
  console.info('openDemo');
Z
zhang-daiyue 已提交
1151
  try {
H
huweiqi 已提交
1152 1153
    let testFileName = "testFile" + Date.now() + ".jpg";
    const fileAsset = await mgr.createPhotoAsset(testFileName);
H
huweiqi 已提交
1154
    let fd = await fileAsset.open('rw');
Z
zhang-daiyue 已提交
1155 1156
    if (fd != undefined) {
      console.info('File fd' + fd);
H
huweiqi 已提交
1157
      fileAsset.close(fd);
Z
zhang-daiyue 已提交
1158 1159 1160 1161 1162 1163
    } else {
      console.info(' open File fail');
    }
  } catch (err) {
    console.info('open Demo err' + err);
  }
Y
yangbo 已提交
1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183
}
```

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

Y
yangbo 已提交
1187
async function example() {
H
huweiqi 已提交
1188
  console.info('closeDemo');
Z
zhang-daiyue 已提交
1189 1190 1191 1192 1193
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1194
    };
Z
zhang-daiyue 已提交
1195 1196 1197 1198 1199 1200 1201 1202 1203 1204
    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 {
        console.info('close failed, message = ' + err);
      }
Y
yangbo 已提交
1205
    });
Z
zhang-daiyue 已提交
1206 1207 1208
  } catch (err) {
    console.info('close failed, message = ' + err);
  }
Y
yangbo 已提交
1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233
}
```

### close

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

Z
zhang-daiyue 已提交
1234
```ts
H
huweiqi 已提交
1235 1236
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1237
async function example() {
H
huweiqi 已提交
1238
  console.info('closeDemo');
Z
zhang-daiyue 已提交
1239 1240 1241 1242 1243
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1244
    };
Z
zhang-daiyue 已提交
1245 1246 1247 1248
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    const asset = await fetchResult.getFirstObject();
    let fd = await asset.open('rw');
    console.info('file fd', fd);
H
huweiqi 已提交
1249
    await asset.close(fd);
Z
zhang-daiyue 已提交
1250 1251 1252 1253
    console.info('asset close succeed.');
  } catch (err) {
    console.info('close failed, message = ' + err);
  }
Y
yangbo 已提交
1254 1255 1256 1257 1258 1259 1260 1261 1262
}
```

### getThumbnail

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

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

Z
zhang-daiyue 已提交
1263
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1264 1265 1266 1267 1268 1269 1270

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

**参数:**

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

**示例:**

Z
zhang-daiyue 已提交
1275
```ts
H
huweiqi 已提交
1276 1277
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1278
async function example() {
H
huweiqi 已提交
1279
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1280 1281 1282 1283 1284 1285 1286
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1287
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1288 1289 1290 1291 1292 1293 1294
  asset.getThumbnail((err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
      console.info('getThumbnail fail', err);
    }
  });
Y
yangbo 已提交
1295 1296 1297 1298 1299
}
```

### getThumbnail

H
huweiqi 已提交
1300
getThumbnail(size: image.Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
Y
yangbo 已提交
1301 1302 1303

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

Z
zhang-daiyue 已提交
1304
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1305 1306 1307 1308 1309 1310 1311

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

**参数:**

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

**示例:**

Z
zhang-daiyue 已提交
1317
```ts
H
huweiqi 已提交
1318 1319
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1320
async function example() {
H
huweiqi 已提交
1321
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1322 1323 1324 1325 1326 1327 1328 1329
  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 已提交
1330
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1331 1332 1333 1334 1335
  asset.getThumbnail(size, (err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
      console.info('getThumbnail fail', err);
Y
yangbo 已提交
1336
    }
Z
zhang-daiyue 已提交
1337
  });
Y
yangbo 已提交
1338 1339 1340
}
```

Z
zhang-daiyue 已提交
1341
### getThumbnail
Y
yangbo 已提交
1342

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

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

Z
zhang-daiyue 已提交
1347
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
Y
yangbo 已提交
1348 1349 1350 1351 1352

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

**参数:**

Z
zhang-daiyue 已提交
1353 1354
| 参数名  | 类型             | 必填   | 说明    |
| ---- | -------------- | ---- | ----- |
1355
| size | [image.Size](js-apis-image.md#size) | 否    | 缩略图尺寸 |
Y
yangbo 已提交
1356 1357 1358

**返回值:**

Z
zhang-daiyue 已提交
1359 1360
| 类型                            | 说明                    |
| ----------------------------- | --------------------- |
Z
zengyawen 已提交
1361
| Promise&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | Promise返回缩略图的PixelMap |
Y
yangbo 已提交
1362 1363 1364

**示例:**

Z
zhang-daiyue 已提交
1365
```ts
H
huweiqi 已提交
1366 1367
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1368
async function example() {
H
huweiqi 已提交
1369
  console.info('getThumbnailDemo');
Z
zhang-daiyue 已提交
1370 1371 1372 1373 1374 1375 1376 1377
  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 已提交
1378
  console.info('asset displayName = ', asset.displayName);
Z
zhang-daiyue 已提交
1379 1380 1381 1382 1383
  asset.getThumbnail(size).then((pixelMap) => {
    console.info('getThumbnail successful ' + pixelMap);
  }).catch((err) => {
    console.info('getThumbnail fail' + err);
  });
Y
yangbo 已提交
1384 1385 1386
}
```

Z
zhang-daiyue 已提交
1387 1388 1389
### favorite

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

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

Z
zhang-daiyue 已提交
1393
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1394 1395 1396 1397 1398

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

**参数:**

Z
zhang-daiyue 已提交
1399 1400 1401 1402
| 参数名        | 类型                        | 必填   | 说明                                 |
| ---------- | ------------------------- | ---- | ---------------------------------- |
| isFavorite | boolean                   | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
| callback   | AsyncCallback&lt;void&gt; | 是    | 回调返回空                              |
Y
yangbo 已提交
1403 1404 1405

**示例:**

Z
zhang-daiyue 已提交
1406
```ts
H
huweiqi 已提交
1407 1408
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1409
async function example() {
H
huweiqi 已提交
1410
  console.info('favoriteDemo');
Z
zhang-daiyue 已提交
1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424
  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 {
      console.info("favorite failed with error:" + err);
    }
  });
Y
yangbo 已提交
1425 1426 1427
}
```

Z
zhang-daiyue 已提交
1428 1429 1430
### favorite

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

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

Z
zhang-daiyue 已提交
1434
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
1435 1436 1437

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

Z
zhang-daiyue 已提交
1438 1439 1440 1441 1442 1443
**参数:**

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

Y
yangbo 已提交
1444 1445
**返回值:**

Z
zhang-daiyue 已提交
1446 1447 1448
| 类型                  | 说明         |
| ------------------- | ---------- |
| Promise&lt;void&gt; | Promise返回空 |
Y
yangbo 已提交
1449 1450 1451

**示例:**

Z
zhang-daiyue 已提交
1452
```ts
H
huweiqi 已提交
1453 1454
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1455
async function example() {
H
huweiqi 已提交
1456
  console.info('favoriteDemo');
Z
zhang-daiyue 已提交
1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468
  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) {
    console.info("favorite failed with error:" + err);
  });
Y
yangbo 已提交
1469 1470 1471
}
```

Z
zhang-daiyue 已提交
1472
## FetchResult
Y
yangbo 已提交
1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491

文件检索结果集。

### getCount

getCount(): number

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

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

**返回值**

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

**示例**

Z
zhang-daiyue 已提交
1492
```ts
H
huweiqi 已提交
1493 1494
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1495
async function example() {
H
huweiqi 已提交
1496
  console.info('getCountDemo');
Z
zhang-daiyue 已提交
1497 1498 1499 1500 1501 1502 1503
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const fetchCount = fetchResult.getCount();
H
huweiqi 已提交
1504
  console.info('fetchCount = ', fetchCount);
Y
yangbo 已提交
1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523
}
```

### isAfterLast

isAfterLast(): boolean

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

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

**返回值**

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

**示例**

Z
zhang-daiyue 已提交
1524
```ts
H
huweiqi 已提交
1525 1526
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1527
async function example() {
Z
zhang-daiyue 已提交
1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541
  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 已提交
1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554
}
```

### close

close(): void

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

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

**示例**

Z
zhang-daiyue 已提交
1555
```ts
H
huweiqi 已提交
1556 1557
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1558
async function example() {
H
huweiqi 已提交
1559
  console.info('fetchResultCloseDemo');
Z
zhang-daiyue 已提交
1560 1561 1562 1563 1564
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
H
huweiqi 已提交
1565 1566 1567 1568 1569 1570 1571
  try {
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    await fetchResult.close();
    console.info('close succeed.');
  } catch (err) {
    console.info('close fail. message = ' + err);
  }
Y
yangbo 已提交
1572 1573 1574 1575 1576
}
```

### getFirstObject

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

Z
zhang-daiyue 已提交
1579
获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。
Y
yangbo 已提交
1580 1581 1582 1583 1584 1585 1586

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

**参数**

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

**示例**

Z
zhang-daiyue 已提交
1591
```ts
H
huweiqi 已提交
1592 1593
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1594
async function example() {
H
huweiqi 已提交
1595
  console.info('getFirstObjectDemo');
Z
zhang-daiyue 已提交
1596 1597 1598 1599 1600 1601 1602 1603
  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 已提交
1604
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1605 1606 1607 1608
    } else {
      console.info("fileAsset failed with err:" + err);
    }
  });
Y
yangbo 已提交
1609 1610 1611 1612 1613
}
```

### getFirstObject

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

Z
zhang-daiyue 已提交
1616
获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。
Y
yangbo 已提交
1617 1618 1619 1620 1621 1622 1623

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

**返回值**

| 类型                                    | 说明                       |
| --------------------------------------- | -------------------------- |
H
huweiqi 已提交
1624
| Promise&lt;T&gt; | Promise方式返回 |
Y
yangbo 已提交
1625 1626 1627

**示例**

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

Y
yangbo 已提交
1631
async function example() {
H
huweiqi 已提交
1632
  console.info('getFirstObjectDemo');
Z
zhang-daiyue 已提交
1633 1634 1635 1636 1637 1638 1639
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
H
huweiqi 已提交
1640
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1641 1642 1643 1644 1645
}
```

### getNextObject

Z
zhang-daiyue 已提交
1646
 getNextObject(callback: AsyncCallback&lt;T&gt;): void
Y
yangbo 已提交
1647 1648 1649 1650 1651 1652 1653 1654 1655

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

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

**参数**

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

**示例**

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

Y
yangbo 已提交
1663
async function example() {
H
huweiqi 已提交
1664
  console.info('getNextObjectDemo');
Z
zhang-daiyue 已提交
1665 1666 1667 1668 1669 1670 1671 1672 1673 1674
  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 已提交
1675
        console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1676 1677 1678 1679 1680
      } else {
        console.info("fileAsset failed with err:" + err);
      }
    });
  }
Y
yangbo 已提交
1681 1682 1683 1684 1685
}
```

### getNextObject

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

Z
zhang-daiyue 已提交
1688
获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。
Y
yangbo 已提交
1689 1690 1691 1692 1693 1694 1695

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

**返回值**

| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
Z
zhang-daiyue 已提交
1696
| Promise&lt;T&gt; | 返回结果集中下一个对象 |
Y
yangbo 已提交
1697 1698 1699

**示例**

Z
zhang-daiyue 已提交
1700
```ts
H
huweiqi 已提交
1701 1702
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1703
async function example() {
H
huweiqi 已提交
1704
  console.info('getNextObjectDemo');
Z
zhang-daiyue 已提交
1705 1706 1707 1708 1709 1710 1711 1712 1713
  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 已提交
1714
    console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1715
  }
Y
yangbo 已提交
1716 1717 1718 1719 1720
}
```

### getLastObject

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

Z
zhang-daiyue 已提交
1723
获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。
Y
yangbo 已提交
1724 1725 1726 1727 1728 1729 1730

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

**参数**

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

**示例**

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

Y
yangbo 已提交
1738
async function example() {
H
huweiqi 已提交
1739
  console.info('getLastObjectDemo');
Z
zhang-daiyue 已提交
1740 1741 1742 1743 1744 1745 1746 1747
  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 已提交
1748
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1749 1750 1751 1752
    } else {
      console.info("fileAsset failed with err:" + err);
    }
  });
Y
yangbo 已提交
1753 1754 1755 1756 1757
}
```

### getLastObject

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

Z
zhang-daiyue 已提交
1760
获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。
Y
yangbo 已提交
1761 1762 1763 1764 1765 1766 1767

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

**返回值**

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

**示例**

Z
zhang-daiyue 已提交
1772
```ts
H
huweiqi 已提交
1773 1774
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1775
async function example() {
H
huweiqi 已提交
1776
  console.info('getLastObjectDemo');
Z
zhang-daiyue 已提交
1777 1778 1779 1780 1781 1782 1783
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getLastObject();
H
huweiqi 已提交
1784
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1785 1786 1787 1788 1789
}
```

### getPositionObject

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

Z
zhang-daiyue 已提交
1792
获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。
Y
yangbo 已提交
1793 1794 1795 1796 1797 1798 1799 1800

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

**参数**

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

**示例**

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

Y
yangbo 已提交
1808
async function example() {
H
huweiqi 已提交
1809
  console.info('getPositionObjectDemo');
Z
zhang-daiyue 已提交
1810 1811 1812 1813 1814 1815 1816 1817
  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 已提交
1818
      console.info('fileAsset displayName: ', fileAsset.displayName);
Z
zhang-daiyue 已提交
1819 1820 1821 1822
    } else {
      console.info("fileAsset failed with err:" + err);
    }
  });
Y
yangbo 已提交
1823 1824 1825 1826 1827
}
```

### getPositionObject

Z
zhang-daiyue 已提交
1828
getPositionObject(index: number): Promise&lt;T&gt;
Y
yangbo 已提交
1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843

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

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

**参数**

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

**返回值**

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

**示例**

Z
zhang-daiyue 已提交
1848
```ts
H
huweiqi 已提交
1849 1850
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Y
yangbo 已提交
1851
async function example() {
H
huweiqi 已提交
1852
  console.info('getPositionObjectDemo');
Z
zhang-daiyue 已提交
1853 1854 1855 1856 1857 1858 1859
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getPositionObject(0);
H
huweiqi 已提交
1860
  console.info('fileAsset displayName: ', fileAsset.displayName);
Y
yangbo 已提交
1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879
}
```

## Album

实体相册

### 属性

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

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

Z
zhang-daiyue 已提交
1880 1881 1882 1883
### getPhotoAssets

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

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

H
huweiqi 已提交
1886
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Z
zhang-daiyue 已提交
1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899

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

**参数**

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

**示例**

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

Z
zhang-daiyue 已提交
1902
async function example() {
H
huweiqi 已提交
1903
  console.info('albumGetFileAssetsDemoCallback');
Z
zhang-daiyue 已提交
1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927

  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) {
      console.info("album getPhotoAssets successfully, getCount:" + albumFetchResult.getCount());
    } else {
      console.info("album getPhotoAssets failed with error:" + err);
    }
  });
}
```
### getPhotoAssets

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

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

H
huweiqi 已提交
1930
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Z
zhang-daiyue 已提交
1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943

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

**参数**

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

**示例**

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

Z
zhang-daiyue 已提交
1946
async function example() {
H
huweiqi 已提交
1947
  console.info('albumGetFileAssetsDemoPromise');
Z
zhang-daiyue 已提交
1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966

  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) => {
    console.info("album getFileAssets successfully, getCount:" + albumFetchResult.getCount());
  }).catch((err) => {
    console.info("album getFileAssets failed with error:" + err);
  });
}
```

Y
yangbo 已提交
1967 1968 1969 1970 1971 1972
### commitModify

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

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

Z
zhang-daiyue 已提交
1973
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
Y
yangbo 已提交
1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985

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

**参数**

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

**示例**

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

Z
zhang-daiyue 已提交
1988
async function example() {
H
huweiqi 已提交
1989
  console.info('albumCommitModifyDemo');
Z
zhang-daiyue 已提交
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
  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) {
      console.info("commitModify failed with error:" + err);
    } else {
      console.info("commitModify successfully");
    }
  });
Y
yangbo 已提交
2004 2005 2006 2007 2008 2009 2010 2011 2012
}
```

### commitModify

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

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

Z
zhang-daiyue 已提交
2013
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
Y
yangbo 已提交
2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025

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

**返回值**

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

**示例**

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

Z
zhang-daiyue 已提交
2028
async function example() {
H
huweiqi 已提交
2029
  console.info('albumCommitModifyDemo');
Z
zhang-daiyue 已提交
2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045
  let predicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions = {
    predicates: predicates
  };
  try {
    var albumList = await mgr.getPhotoAlbums(albumFetchOptions);
  } catch (err) {
    console.info('getPhotoAlbums failed. message = ', err);
  }
  const album = await albumList.getFirstObject();
  album.albumName = 'hello';
  album.commitModify().then(() => {
    console.info("commitModify successfully");
  }).catch((err) => {
    console.info("commitModify failed with error:" + err);
  });
Y
yangbo 已提交
2046 2047 2048
}
```

Z
zhang-daiyue 已提交
2049
## PrivateAlbum
H
huweiqi 已提交
2050 2051

系统相册。
Z
zhang-daiyue 已提交
2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065

### 属性

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

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

### getPhotoAssets
Y
yangbo 已提交
2066

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

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

H
huweiqi 已提交
2071
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
2072 2073 2074 2075 2076

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

**参数**

Z
zhang-daiyue 已提交
2077 2078 2079 2080
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |
| callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是   | callback返回图片和视频数据结果集 |
Y
yangbo 已提交
2081 2082 2083 2084

**示例**

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

Z
zhang-daiyue 已提交
2087
async function example() {
H
huweiqi 已提交
2088
  console.info('privateAlbumGetFileAssetsDemoCallback');
Z
zhang-daiyue 已提交
2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103
  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 {
      console.info('getFileAssets failed, message = ', err);
    }
  });
Y
yangbo 已提交
2104 2105
}

Z
zhang-daiyue 已提交
2106 2107
```
### getPhotoAssets
Y
yangbo 已提交
2108

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

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

H
huweiqi 已提交
2113
**需要权限**:ohos.permission.READ_IMAGEVIDEO
Y
yangbo 已提交
2114 2115 2116 2117 2118

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

**参数**

Z
zhang-daiyue 已提交
2119 2120 2121 2122 2123 2124 2125 2126 2127
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是   | 检索选项 |

**返回值**

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

**示例**

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

Z
zhang-daiyue 已提交
2134
async function example() {
H
huweiqi 已提交
2135
  console.info('privateAlbumGetFileAssetsDemoPromise');
Z
zhang-daiyue 已提交
2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146
  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 已提交
2147
```
Z
zhang-daiyue 已提交
2148 2149 2150
### delete

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

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

Z
zhang-daiyue 已提交
2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167
**需要权限**: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 已提交
2168 2169
import dataSharePredicates from '@ohos.data.dataSharePredicates';

Z
zhang-daiyue 已提交
2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191
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) {
      console.info('trashAlbum.delete failed, message = ', err);
    } else {
      console.info('trashAlbum.delete successfully');
    }
  });
}
```
### delete
Y
yangbo 已提交
2192

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

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

Z
zhang-daiyue 已提交
2197
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2198 2199 2200 2201 2202

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

**参数**

Z
zhang-daiyue 已提交
2203 2204 2205
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| uri | string | 是   | 相册uri |
Y
yangbo 已提交
2206 2207 2208

**返回值**

Z
zhang-daiyue 已提交
2209 2210 2211
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
| Promise&lt;void&gt;| 回调返回空 |
Y
yangbo 已提交
2212 2213 2214 2215

**示例**

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

Z
zhang-daiyue 已提交
2218
async function example() {
H
huweiqi 已提交
2219
  console.info('privateAlbumDeleteDemoPromise');
Z
zhang-daiyue 已提交
2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235
  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) => {
    console.info('trashAlbum.delete failed, message = ', err);
  });
}   
Y
yangbo 已提交
2236 2237
```

Z
zhang-daiyue 已提交
2238
### recover
Y
yangbo 已提交
2239

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

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

H
huweiqi 已提交
2244
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2245 2246 2247 2248

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

**参数**
Z
zhang-daiyue 已提交
2249 2250 2251 2252 2253

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

**示例**

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

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

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

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

H
huweiqi 已提交
2287
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
Y
yangbo 已提交
2288 2289 2290 2291 2292

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

**参数**

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

**返回值**

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

**示例**

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

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

Z
zhang-daiyue 已提交
2328 2329 2330 2331
## MemberType

成员类型。

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

H
huweiqi 已提交
2334 2335 2336 2337 2338
| 名称  |  类型 |  可读  |  可写  |  说明  |
| ----- |  ---- |  ---- |  ---- |  ---- |
| number |  number | 是 | 是 | number类型 | 
| string |  string | 是 | 是 | string类型 | 
| boolean |  boolean | 是 | 是 | boolean类型 | 
Z
zhang-daiyue 已提交
2339 2340 2341 2342 2343

## ChangeEvent

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

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

H
huweiqi 已提交
2346
| 名称  |  类型 |  可读  |  可写  |  说明 |
H
huweiqi 已提交
2347 2348 2349 2350 2351 2352 2353
| ----- |  ---- |  ---- |  ---- |  ---- |
| deviceChange |  string | 是 | 是 |  设备 |
| albumChange |  string | 是 | 是 |  相册 |
| imageChange |  string | 是 | 是 |  图片 |
| audioChange |  string | 是 | 是 |  音频 |
| videoChange |  string | 是 | 是 |  视频 |
| remoteFileChange |  string | 是 | 是 |  远程文件 |
Z
zhang-daiyue 已提交
2354

Y
yangbo 已提交
2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367
## PeerInfo

注册设备的信息。

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

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


Z
zhang-daiyue 已提交
2368 2369 2370
## FileType

枚举,媒体文件类型。
Y
yangbo 已提交
2371 2372 2373

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

H
huweiqi 已提交
2374 2375 2376 2377 2378
| 名称  |  值 |  说明 |
| ----- |  ---- |  ---- |
| IMAGE |  1 |  图片 |
| VIDEO |  2 |  视频 |
| AUDIO |  3 |  音频 |
Y
yangbo 已提交
2379

Z
zhang-daiyue 已提交
2380
## PrivateAlbumType
Y
yangbo 已提交
2381

Z
zhang-daiyue 已提交
2382
枚举,系统相册类型。
Y
yangbo 已提交
2383 2384 2385

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

H
huweiqi 已提交
2386 2387 2388 2389
| 名称    |  值 |   说明   |
| -----   |  ----  |   ----  |
| TYPE_FAVORITE |  0 |  收藏夹相册 |
| TYPE_TRASH |  1 |  回收站相册 |
Z
zhang-daiyue 已提交
2390 2391


Y
yangbo 已提交
2392 2393 2394 2395 2396 2397 2398

## AudioKey

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

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

H
huweiqi 已提交
2399
| 名称          |   值              | 说明                                                       |
Y
yangbo 已提交
2400 2401 2402 2403 2404 2405 2406 2407 2408
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 文件uri                                                   |
| DISPLAY_NAME  | display_name        | 显示名字                                                   |
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值)             |
| TITLE         | title               | 文件标题                                                   |
| ARTIST        | artist              | 作者                                                   |
| AUDIOALBUM    | audio_album         | 专辑                                                   |
| DURATION      | duration            | 持续时间(单位:毫秒)                                    |
Z
zhang-daiyue 已提交
2409
| FAVORITE      | favorite            | 收藏                                                   |
Y
yangbo 已提交
2410 2411 2412 2413 2414 2415 2416

## ImageVideoKey

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

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

H
huweiqi 已提交
2417
| 名称          | 值              | 说明                                                       |
Y
yangbo 已提交
2418 2419
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 文件uri                                                   |
Z
zhang-daiyue 已提交
2420
| FILE_TYPE     | file_type           | 媒体文件类型                                              |
Y
yangbo 已提交
2421 2422 2423
| DISPLAY_NAME  | display_name        | 显示名字                                                   |
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值)             |
Z
zhang-daiyue 已提交
2424
| TITLE         | title               | 文件标题                                                   |
Y
yangbo 已提交
2425 2426 2427 2428
| DURATION      | duration            | 持续时间(单位:毫秒)                                    |
| WIDTH         | width               | 图片宽度(单位:像素)                                    |
| HEIGHT        | height              | 图片高度(单位:像素)                                      |
| DATE_TAKEN    | date_taken          | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)                |
Z
zhang-daiyue 已提交
2429 2430
| ORIENTATION   | orientation         | 图片文件的方向                                             |
| FAVORITE      | favorite            | 收藏                                                    |
Y
yangbo 已提交
2431 2432 2433 2434 2435 2436 2437

## AlbumKey

枚举,相册关键信息。

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

H
huweiqi 已提交
2438
| 名称          | 值              | 说明                                                       |
Y
yangbo 已提交
2439 2440
| ------------- | ------------------- | ---------------------------------------------------------- |
| URI           | uri                 | 相册uri                                                   |
Z
zhang-daiyue 已提交
2441 2442
| FILE_TYPE     | file_type           | 媒体文件类型                                              |
| ALBUM_NAME    | album_name          | 相册名字                                                   |
Y
yangbo 已提交
2443 2444 2445 2446
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值)             |


Z
zhang-daiyue 已提交
2447
## FetchOptions
Y
yangbo 已提交
2448 2449 2450 2451 2452

检索条件。

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

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

Z
zhang-daiyue 已提交
2458
## AlbumFetchOptions
Y
yangbo 已提交
2459

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

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

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