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

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

Y
yangbo 已提交
5
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
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模型下使用。
Z
zhang-daiyue 已提交
22
 
Y
yangbo 已提交
23 24 25 26 27 28
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core

**参数:** 

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
Z
zhongjianfei 已提交
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 89
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);
    }
  })
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 129 130 131 132 133 134 135
async function example() {
  console.info('getPhotoAssets');
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    var fetchResult = await mgr.getPhotoAssets(fetchOptions)
    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 166 167 168 169 170 171 172
async function example() {
  console.info('createPhotoAssetDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    predicates: predicates
  };
  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 181 182 183
    if (fileAsset != undefined) {
      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
      console.info('createPhotoAsset successfully');
    } else {
      console.info('createPhotoAsset failed, message = ', err);
    }
  })
}
```
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 206
### createPhotoAsset

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

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

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

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

**参数:**

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

**示例:**

```ts
async function example() {
  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 215
    if (fileAsset != undefined) {
      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
      console.info('createPhotoAsset successfully');
    } else {
      console.info('createPhotoAsset failed, message = ', err);
    }
  })
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 246 247
async function example() {
  console.info('createPhotoAssetDemo')
  try {
H
huweiqi 已提交
248 249
    let testFileName = "testFile" + Date.now() + ".jpg";
    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 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297
async function example() {
  console.info('getPhotoAlbumsDemo')
  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 已提交
298 299
    } else {
      console.info('getPhotoAlbums fail, message = ', err);
Z
zhang-daiyue 已提交
300 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 333 334 335 336 337 338 339 340 341 342 343 344 345
async function example() {
  console.info('getPhotoAlbumsDemo')
  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 371 372 373 374 375 376 377 378 379
async function example() {
  console.info('getPrivateAlbumDemo')
  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
    }
Z
zhang-daiyue 已提交
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 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562
async function example() {
  console.info('deleteAssetDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult = await mgr.getPhotoAssets(fetchOptions);
    var asset = await fetchResult.getFirstObject();
  } catch (err) {
    console.info('fetch failed, message =', err)
  }

  if (asset == undefined) {
    console.error('asset not exist')
    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 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615
async function example() {
  console.info('deleteDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult = await mgr.getPhotoAssets(fetchOptions);
    var asset = await fetchResult.getFirstObject();
  } catch (err) {
    console.info('fetch failed, message =', err)
  }

  if (asset == undefined) {
    console.error('asset not exist')
    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 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660
  console.info('onDemo')
  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 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707
  console.info('offDemo')
  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 729 730 731 732 733 734 735 736 737 738 739
async function example() {
  console.info('getActivePeersDemo')
  mgr.getActivePeers((err, devicesInfo) => {
    if (devicesInfo != undefined) {
      console.log('getActivePeers succeed.')
      for (let i = 0; i < devicesInfo.length; i++) {
        console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
      }
    } else {
      console.info('getActivePeers failed. message = ', err)
    }
  });
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 761 762 763 764 765 766 767 768 769 770
async function example() {
  console.info('getActivePeersDemo')
  try {
    var devicesInfo = await mgr.getActivePeers();
  } catch (err) {
    console.info('getActivePeers failed. message = ', err)
  }
  if (devicesInfo != undefined) {
    console.log('getActivePeers succeed.')
    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 773 774
  } else {
    console.info('get distributed fail')
  }
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 796 797 798 799 800 801 802 803 804 805 806
async function example() {
  console.info('getAllPeersDemo')
  mgr.getAllPeers((err, devicesInfo) => {
    if (devicesInfo != undefined) {
      console.log('getAllPeers succeed.')
      for (let i = 0; i < devicesInfo.length; i++) {
        console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
      }
    } else {
      console.info('getAllPeers failed. message = ', err)
    }
  });
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 828 829 830 831 832 833 834 835 836 837
async function example() {
  console.info('getAllPeersDemo')
  try {
    var devicesInfo = await mgr.getAllPeers();
  } catch (err) {
    console.info('getAllPeers failed. message = ', err)
  }
  if (devicesInfo != undefined) {
    console.log('getAllPeers succeed.')
    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 840 841
  } else {
    console.info('get distributed fail')
  }
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 871
async function example() {
  console.info('releaseDemo');
  mgr.release((err) => {
    if (err != undefined) {
      console.info('release failed. message = ', err);
    } else {
      console.info('release ok.');
    }
  })
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

Z
zhang-daiyue 已提交
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() {
Z
zhang-daiyue 已提交
939 940 941 942 943 944
  console.info('fileAssetGetDemo')
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
945
    };
Z
zhang-daiyue 已提交
946 947 948 949 950 951 952 953
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    let fileAsset = await fetchResult.getFirstObject();
    let title = userFileManager.ImageVideoKey.TITLE
    let fileAssetTitle = fileAsset.get(title.toString())
    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

Z
zhang-daiyue 已提交
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() {
Z
zhang-daiyue 已提交
978 979 980 981 982 983
  console.info('fileAssetSetDemo')
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
984
    };
Z
zhang-daiyue 已提交
985 986 987 988 989 990 991
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    let fileAsset = await fetchResult.getFirstObject();
    let title = userFileManager.ImageVideoKey.TITLE
    fileAsset.set(title.toString(), "newTitle")
  } 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() {
Z
zhang-daiyue 已提交
1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036
  console.info('commitModifyDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
  let title = userFileManager.ImageVideoKey.TITLE
  let fileAssetTitle = fileAsset.get(title.toString())
  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
  fileAsset.set(title.toString(), "newTitle")
  fileAsset.commitModify((err) => {
    if (err == undefined) {
      let newFileAssetTitle = fileAsset.get(title.toString())
      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() {
Z
zhang-daiyue 已提交
1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080
  console.info('commitModifyDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
  let title = userFileManager.ImageVideoKey.TITLE
  let fileAssetTitle = fileAsset.get(title.toString())
  console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
  fileAsset.set(title.toString(), "newTitle")
  try {
    await fileAsset.commitModify()
    let newFileAssetTitle = fileAsset.get(title.toString())
    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 1090 1091
}
```

### open

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

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

**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放

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() {
Z
zhang-daiyue 已提交
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 1114 1115 1116 1117 1118
  fileAsset.open('rw', (err, fd) => {
    if (fd != undefined) {
      console.info('File fd' + fd);
      fileAsset.close(fd)
    } else {
      console.info('File err' + err);
    }
  });
Y
yangbo 已提交
1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129
}
```

### open

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

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

**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放

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() {
Z
zhang-daiyue 已提交
1150 1151
  console.info('openDemo')
  try {
H
huweiqi 已提交
1152 1153
    let testFileName = "testFile" + Date.now() + ".jpg";
    const fileAsset = await mgr.createPhotoAsset(testFileName);
Z
zhang-daiyue 已提交
1154 1155 1156 1157 1158 1159 1160 1161 1162 1163
    let fd = await fileAsset.open('rw')
    if (fd != undefined) {
      console.info('File fd' + fd);
      fileAsset.close(fd)
    } 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() {
Z
zhang-daiyue 已提交
1188 1189 1190 1191 1192 1193
  console.info('closeDemo')
  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() {
Z
zhang-daiyue 已提交
1238 1239 1240 1241 1242 1243
  console.info('closeDemo')
  try {
    let predicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption = {
      fetchColumns: [],
      predicates: predicates
Y
yangbo 已提交
1244
    };
Z
zhang-daiyue 已提交
1245 1246 1247 1248 1249 1250 1251 1252 1253
    let fetchResult = await mgr.getPhotoAssets(fetchOption);
    const asset = await fetchResult.getFirstObject();
    let fd = await asset.open('rw');
    console.info('file fd', fd);
    await asset.close(fd)
    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() {
Z
zhang-daiyue 已提交
1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294
  console.info('getThumbnailDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  console.info('asset displayName = ', asset.displayName)
  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() {
Z
zhang-daiyue 已提交
1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335
  console.info('getThumbnailDemo')
  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();
  console.info('asset displayName = ', asset.displayName)
  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() {
Z
zhang-daiyue 已提交
1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383
  console.info('getThumbnailDemo')
  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();
  console.info('asset displayName = ', asset.displayName)
  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() {
Z
zhang-daiyue 已提交
1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424
  console.info('favoriteDemo')
  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() {
Z
zhang-daiyue 已提交
1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468
  console.info('favoriteDemo')
  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() {
Z
zhang-daiyue 已提交
1496 1497 1498 1499 1500 1501 1502 1503 1504
  console.info('getCountDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  const fetchCount = fetchResult.getCount();
  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() {
Z
zhang-daiyue 已提交
1559 1560 1561 1562 1563 1564
  console.info('fetchResultCloseDemo')
  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() {
Z
zhang-daiyue 已提交
1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608
  console.info('getFirstObjectDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getFirstObject((err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('fileAsset displayName: ', fileAsset.displayName)
    } 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

**返回值**

| 类型                                    | 说明                       |
| --------------------------------------- | -------------------------- |
Z
zhang-daiyue 已提交
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() {
Z
zhang-daiyue 已提交
1632 1633 1634 1635 1636 1637 1638 1639 1640
  console.info('getFirstObjectDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getFirstObject();
  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() {
Z
zhang-daiyue 已提交
1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680
  console.info('getNextObjectDemo')
  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) {
        console.info('fileAsset displayName: ', fileAsset.displayName)
      } 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() {
Z
zhang-daiyue 已提交
1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715
  console.info('getNextObjectDemo')
  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();
    console.info('fileAsset displayName: ', fileAsset.displayName)
  }
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() {
Z
zhang-daiyue 已提交
1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752
  console.info('getLastObjectDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getLastObject((err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('fileAsset displayName: ', fileAsset.displayName)
    } 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() {
Z
zhang-daiyue 已提交
1776 1777 1778 1779 1780 1781 1782 1783 1784
  console.info('getLastObjectDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getLastObject();
  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() {
Z
zhang-daiyue 已提交
1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822
  console.info('getPositionObjectDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getPositionObject(0, (err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('fileAsset displayName: ', fileAsset.displayName)
    } 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() {
Z
zhang-daiyue 已提交
1852 1853 1854 1855 1856 1857 1858 1859 1860
  console.info('getPositionObjectDemo')
  let predicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult = await mgr.getPhotoAssets(fetchOption);
  let fileAsset = await fetchResult.getPositionObject(0);
  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 1884 1885
### getPhotoAssets

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

获取相册中的文件。该方法使用callback形式来返回文件

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 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929
async function example() {
  console.info('albumGetFileAssetsDemoCallback')

  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;;

获取相册中的文件。该方法使用Promise来返回文件

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 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966
async function example() {
  console.info('albumGetFileAssetsDemoPromise')

  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 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
async function example() {
  console.info('albumCommitModifyDemo')
  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 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045
async function example() {
  console.info('albumCommitModifyDemo')
  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 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064
## PrivateAlbum
系统相册

### 属性

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

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

### getPhotoAssets
Y
yangbo 已提交
2065

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

Z
zhang-daiyue 已提交
2068
获取系统相册中的文件。该方法使用callback形式来返回文件
Y
yangbo 已提交
2069

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

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

**参数**

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

**示例**

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

Z
zhang-daiyue 已提交
2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102
async function example() {
  console.info('privateAlbumGetFileAssetsDemoCallback')
  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 已提交
2103 2104
}

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

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

Z
zhang-daiyue 已提交
2110
获取系统相册中的文件。该方法使用Promise来返回文件
Y
yangbo 已提交
2111

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

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

**参数**

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

**返回值**

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

**示例**

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

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

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

Z
zhang-daiyue 已提交
2151
删除系统相册中的文件
Y
yangbo 已提交
2152

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

Z
zhang-daiyue 已提交
2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190
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 已提交
2191

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

Z
zhang-daiyue 已提交
2194
删除系统相册中的文件
Y
yangbo 已提交
2195

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

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

**参数**

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

**返回值**

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

**示例**

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

Z
zhang-daiyue 已提交
2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234
async function example() {
  console.info('privateAlbumDeleteDemoPromise')
  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 已提交
2235 2236
```

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

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

Z
zhang-daiyue 已提交
2241
恢复系统相册中的文件
Y
yangbo 已提交
2242

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

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

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

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

**示例**

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

Z
zhang-daiyue 已提交
2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275
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 已提交
2276
    }
Z
zhang-daiyue 已提交
2277
  });
Y
yangbo 已提交
2278 2279
}
```
Z
zhang-daiyue 已提交
2280
### recover
Y
yangbo 已提交
2281

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

Z
zhang-daiyue 已提交
2284
恢复系统相册中的文件
李云帆 已提交
2285

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

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

**参数**

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

**返回值**

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

**示例**

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

Z
zhang-daiyue 已提交
2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323
async function example() {
  console.info('privateAlbumRecoverDemoPromise')
  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 已提交
2324 2325 2326
}
```

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

成员类型。

H
huweiqi 已提交
2331 2332 2333 2334 2335 2336 2337
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
 
| 名称  |  类型 |  可读  |  可写  |  说明  |
| ----- |  ---- |  ---- |  ---- |  ---- |
| number |  number | 是 | 是 | number类型 | 
| string |  string | 是 | 是 | string类型 | 
| boolean |  boolean | 是 | 是 | boolean类型 | 
Z
zhang-daiyue 已提交
2338 2339 2340 2341 2342

## ChangeEvent

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

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

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

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

注册设备的信息。

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

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


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

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

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

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

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

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

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

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


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

## AudioKey

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

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

H
huweiqi 已提交
2398
| 名称          |   值              | 说明                                                       |
Y
yangbo 已提交
2399 2400 2401 2402 2403 2404 2405 2406 2407
| ------------- | ------------------- | ---------------------------------------------------------- |
| 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 已提交
2408
| FAVORITE      | favorite            | 收藏                                                   |
Y
yangbo 已提交
2409 2410 2411 2412 2413 2414 2415

## ImageVideoKey

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

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

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

## AlbumKey

枚举,相册关键信息。

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

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


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

检索条件。

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

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

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

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

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

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