HarmonyOS实战开发:@ohos.filemanagement.userFileManager (用户数据管理)

该模块提供用户数据管理能力,包括访问、修改用户等用户公共媒体数据信息等常用功能。

说明:

  • 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 本模块接口为系统接口。

导入模块

import userFileManager from '@ohos.filemanagement.userFileManager';

userFileManager.getUserFileMgr

getUserFileMgr(context: Context): UserFileManager

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

模型约束: 此接口仅可在Stage模型下使用。

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

参数:

参数名类型必填说明
contextContext传入Ability实例的Context。

返回值:

类型说明
UserFileManager媒体库实例。

示例:

//此处获取的userFileManager实例mgr为全局对象,后续使用到mgr的地方默认为使用此处获取的对象,如未添加此段代码报mgr未定义的错误请自行添加
const context = getContext(this);
let mgr = userFileManager.getUserFileMgr(context);

UserFileManager

getPhotoAssets

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

获取图片和视频资源,使用callback方式返回结果。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
选项FetchOptions图片和视频检索选项。
回调AsyncCallback<FetchResult<FileAsset>>callback返回图片和视频检索结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getPhotoAssets');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };

  mgr.getPhotoAssets(fetchOptions, async (err, fetchResult) => {
    if (fetchResult != undefined) {
      console.info('fetchResult success');
      let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
      if (fileAsset != undefined) {
        console.info('fileAsset.displayName : ' + fileAsset.displayName);
      }
    } else {
      console.error('fetchResult fail' + err);
    }
  });
}

getPhotoAssets

getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;

获取图片和视频资源,使用Promise方式返回结果。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
optionsFetchOptions图片和视频检索选项。

返回值:

类型说明
Promise<FetchResult<FileAsset>>Promise对象,返回图片和视频数据结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getPhotoAssets');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions);
    if (fetchResult != undefined) {
      console.info('fetchResult success');
      let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
      if (fileAsset != undefined) {
        console.info('fileAsset.displayName :' + fileAsset.displayName);
      }
    }
  } catch (err) {
    console.error('getPhotoAssets failed, message = ', err);
  }
}

createPhotoAsset

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

指定待创建的图片或者视频的文件名和所在相册的uri,创建图片或视频资源,使用callback方式返回结果。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
displayNamestring创建的图片或者视频文件名。
albumUristring创建的图片或者视频所在相册的uri。
callbackAsyncCallback<FileAsset>callback返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type displayName or albumUri is not string.
14000001if type displayName invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('createPhotoAssetDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: userFileManager.AlbumFetchOptions = {
    predicates: predicates
  };
  let albums: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(fetchOptions);
  let album: userFileManager.Album = await albums.getFirstObject();
  let testFileName: string = 'testFile' + Date.now() + '.jpg';
  mgr.createPhotoAsset(testFileName, album.albumUri, (err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
      console.info('createPhotoAsset successfully');
    } else {
      console.error('createPhotoAsset failed, message = ', err);
    }
  });
}

createPhotoAsset

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

指定待创建的图片或者视频的文件名,创建图片或视频资源,使用callback方式返回结果。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
displayNamestring创建的图片或者视频文件名。
callbackAsyncCallback<FileAsset>callback返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type displayName is not string.
14000001if type displayName invalid.

示例:

async function example() {
  console.info('createPhotoAssetDemo');
  let testFileName: string = 'testFile' + Date.now() + '.jpg';
  mgr.createPhotoAsset(testFileName, (err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
      console.info('createPhotoAsset successfully');
    } else {
      console.error('createPhotoAsset failed, message = ', err);
    }
  });
}

createPhotoAsset

createPhotoAsset(displayName: string, albumUri?: string): Promise<FileAsset>;

指定待创建的图片或者视频的文件名和所在相册的uri,创建图片或视频资源,使用Promise方式返回结果。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
displayNamestring创建的图片或者视频文件名。
albumUristring创建的图片或者视频所在相册的uri。

返回值:

类型说明
Promise<FileAsset>Promise对象,返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type displayName or albumUri is not string.

示例:

async function example() {
  console.info('createPhotoAssetDemo');
  try {
    let testFileName: string = 'testFile' + Date.now() + '.jpg';
    let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName);
    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
    console.info('createPhotoAsset successfully');
  } catch (err) {
    console.error('createPhotoAsset failed, message = ', err);
  }
}

createPhotoAsset

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

指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用callback方式返回结果。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
displayNamestring创建的图片或者视频文件名。
createOptionPhotoCreateOptions图片或视频的创建选项。
callbackAsyncCallback<FileAsset>callback返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type displayName is not string.
14000001if type displayName invalid.

示例:

async function example() {
  console.info('createPhotoAssetDemo');
  let testFileName: string = 'testFile' + Date.now() + '.jpg';
  let createOption: userFileManager.PhotoCreateOptions = {
    subType: userFileManager.PhotoSubType.DEFAULT
  }
  mgr.createPhotoAsset(testFileName, createOption, (err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('createPhotoAsset file displayName' + fileAsset.displayName);
      console.info('createPhotoAsset successfully');
    } else {
      console.error('createPhotoAsset failed, message = ', err);
    }
  });
}

createPhotoAsset

createPhotoAsset(displayName: string, createOption: PhotoCreateOptions): Promise<FileAsset>;

指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用Promise方式返回结果。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
displayNamestring创建的图片或者视频文件名。
createOptionPhotoCreateOptions图片或视频的创建选项。

返回值:

类型说明
Promise<FileAsset>Promise对象,返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type displayName is not string.

示例:

async function example() {
  console.info('createPhotoAssetDemo');
  try {
    let testFileName: string = 'testFile' + Date.now() + '.jpg';
    let createOption: userFileManager.PhotoCreateOptions = {
      subType: userFileManager.PhotoSubType.DEFAULT
    }
    let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName, createOption);
    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
    console.info('createPhotoAsset successfully');
  } catch (err) {
    console.error('createPhotoAsset failed, message = ', err);
  }
}

createAudioAsset10+

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

创建音频文件资源,使用callback方式返回结果。

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

需要权限:ohos.permission.WRITE_AUDIO

参数:

参数名类型必填说明
displayNamestring创建的音频文件名。
callbackAsyncCallback<FileAsset>callback返回创建的音频资源结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type displayName is not string.
14000001if type displayName invalid.

示例:

async function example() {
  console.info('createAudioAssetDemo');
  let testFileName: string = 'testFile' + Date.now() + '.mp3';
  mgr.createAudioAsset(testFileName, (err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('createAudioAsset file displayName' + fileAsset.displayName);
      console.info('createAudioAsset successfully');
    } else {
      console.error('createAudioAsset failed, message = ', err);
    }
  });
}

createAudioAsset10+

createAudioAsset(displayName: string): Promise<FileAsset>;

创建音频文件资源,使用Promise方式返回结果。

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

需要权限:ohos.permission.WRITE_AUDIO

参数:

参数名类型必填说明
displayNamestring创建的音频文件名。

返回值:

类型说明
Promise<FileAsset>Promise对象,返回创建的音频资源结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type displayName is not string.

示例:

async function example() {
  console.info('createAudioAssetDemo');
  try {
    let testFileName: string = 'testFile' + Date.now() + '.mp3';
    let fileAsset: userFileManager.FileAsset = await mgr.createAudioAsset(testFileName);
    console.info('createAudioAsset file displayName' + fileAsset.displayName);
    console.info('createAudioAsset successfully');
  } catch (err) {
    console.error('createAudioAsset failed, message = ', err);
  }
}

createAlbum10+

createAlbum(name: string, callback: AsyncCallback<Album>): void;

创建相册,使用callback方式返回结果。

待创建的相册名参数规格为:

  • 相册名字符串长度为1~255。
  • 不允许出现的非法英文字符,包括:
    . .. \ / : * ? " ' ` < > | { } [ ]
  • 英文字符大小写不敏感。
  • 相册名不允许重名。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
namestring待创建相册的相册名。
callbackAsyncCallback<Album>callback返回创建的相册实例。

示例:

async function example() {
  console.info('createAlbumDemo');
  let albumName: string = 'newAlbumName' + new Date().getTime();
  mgr.createAlbum(albumName, (err, album) => {
    if (err) {
      console.error('createAlbumCallback failed with err: ' + err);
      return;
    }
    console.info('createAlbumCallback successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri);
  });
}

createAlbum10+

createAlbum(name: string): Promise<Album>;

创建相册,使用Promise方式返回结果。

待创建的相册名参数规格为:

  • 相册名字符串长度为1~255。
  • 不允许出现的非法英文字符,包括:
    . .. \ / : * ? " ' ` < > | { } [ ]
  • 英文字符大小写不敏感。
  • 相册名不允许重名。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
namestring待创建相册的相册名。

返回值:

类型说明
Promise<Album>Promise对象,返回创建的相册实例。

示例:

import { BusinessError } from '@ohos.base';

async function example() {
  console.info('createAlbumDemo');
  let albumName: string  = 'newAlbumName' + new Date().getTime();
  mgr.createAlbum(albumName).then((album) => {
    console.info('createAlbumPromise successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri);
  }).catch((err: BusinessError) => {
    console.error('createAlbumPromise failed with err: ' + err);
  });
}

deleteAlbums10+

deleteAlbums(albums: Array<Album>, callback: AsyncCallback<void>): void;

删除相册,使用callback方式返回结果。

删除相册前需先确保相册存在,只能删除用户相册。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
albumsArray<Album>待删除相册的数组。
callbackAsyncCallback<void>callback返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  // 示例代码为删除相册名为newAlbumName的相册。
  console.info('deleteAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  predicates.equalTo('album_name', 'newAlbumName');
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC, fetchOptions);
  let album: userFileManager.Album = await fetchResult.getFirstObject();
  mgr.deleteAlbums([album], (err) => {
    if (err) {
      console.error('deletePhotoAlbumsCallback failed with err: ' + err);
      return;
    }
    console.info('deletePhotoAlbumsCallback successfully');
  });
  fetchResult.close();
}

deleteAlbums10+

deleteAlbums(albums: Array<Album>): Promise<void>;

删除相册,使用Promise方式返回结果。

删除相册前需先确保相册存在,只能删除用户相册。

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名类型必填说明
albumsArray<Album>待删除相册的数组。

返回值:

类型说明
Promise<void>Promise对象,返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  // 示例代码为删除相册名为newAlbumName的相册。
  console.info('deleteAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  predicates.equalTo('album_name', 'newAlbumName');
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC, fetchOptions);
  let album: userFileManager.Album = await fetchResult.getFirstObject();
  mgr.deleteAlbums([album]).then(() => {
    console.info('deletePhotoAlbumsPromise successfully');
    }).catch((err: BusinessError) => {
      console.error('deletePhotoAlbumsPromise failed with err: ' + err);
  });
  fetchResult.close();
}

getAlbums10+

getAlbums(type: AlbumType, subType: AlbumSubType, options: FetchOptions, callback: AsyncCallback<FetchResult<Album>>): void;

根据检索选项和相册类型获取相册,使用callback方式返回结果。

获取相册前需先保证相册存在。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
typeAlbumType相册类型。
subTypeAlbumSubType相册子类型。
optionsFetchOptions检索选项。
callbackAsyncCallback<FetchResult<Album>>callback返回获取相册的结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOption.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  // 示例代码中为获取相册名为newAlbumName的相册。
  console.info('getAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  predicates.equalTo('album_name', 'newAlbumName');
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC, fetchOptions, async (err, fetchResult) => {
    if (err) {
      console.error('getAlbumsCallback failed with err: ' + err);
      return;
    }
    if (fetchResult == undefined) {
      console.error('getAlbumsCallback fetchResult is undefined');
      return;
    }
    let album: userFileManager.Album = await fetchResult.getFirstObject();
    console.info('getAlbumsCallback successfully, albumName: ' + album.albumName);
    fetchResult.close();
  });
}

getAlbums10+

getAlbums(type: AlbumType, subType: AlbumSubType, callback: AsyncCallback<FetchResult<Album>>): void;

根据相册类型获取相册,使用callback方式返回结果。

获取相册前需先保证相册存在。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
typeAlbumType相册类型。
subTypeAlbumSubType相册子类型。
callbackAsyncCallback<FetchResult<Album>>callback返回获取相册的结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOption.

示例:

async function example() {
  // 示例代码中为获取统相册VIDEO,默认已预置。
  console.info('getAlbumsDemo');
  mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.VIDEO, async (err, fetchResult) => {
    if (err) {
      console.error('getAlbumsCallback failed with err: ' + err);
      return;
    }
    if (fetchResult == undefined) {
      console.error('getAlbumsCallback fetchResult is undefined');
      return;
    }
    let album: userFileManager.Album = await fetchResult.getFirstObject();
    console.info('getAlbumsCallback successfully, albumUri: ' + album.albumUri);
    fetchResult.close();
  });
}

getAlbums10+

getAlbums(type: AlbumType, subType: AlbumSubType, options?: FetchOptions): Promise<FetchResult<Album>>;

根据检索选项和相册类型获取相册,使用Promise方式返回结果。

获取相册前需先保证相册存在。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
类型AlbumType相册类型。
subTypeAlbumSubType相册子类型。
选项FetchOptions检索选项,不填时默认根据相册类型检索。

返回值:

类型说明
Promise<FetchResult<Album>>Promise对象,返回获取相册的结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOption.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  // 示例代码中为获取相册名为newAlbumName的相册。
  console.info('getAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  predicates.equalTo('album_name', 'newAlbumName');
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC, fetchOptions).then( async (fetchResult) => {
    if (fetchResult == undefined) {
      console.error('getAlbumsPromise fetchResult is undefined');
      return;
    }
    let album: userFileManager.Album = await fetchResult.getFirstObject();
    console.info('getAlbumsPromise successfully, albumName: ' + album.albumName);
    fetchResult.close();
  }).catch((err: BusinessError) => {
    console.error('getAlbumsPromise failed with err: ' + err);
  });
}

getPhotoAlbums

getPhotoAlbums(options: AlbumFetchOptions, callback: AsyncCallback<FetchResult<Album>>): void;

获取相册,使用callback方式返回结果。

此接口即将废弃,请使用getAlbums10+的新接口。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
选项AlbumFetchOptions相册检索选项。
回调AsyncCallback<FetchResult<Album>>callback返回相册检索结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not AlbumFetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getPhotoAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: userFileManager.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.error('album is undefined, err = ', err);
        }
      });
    } else {
      console.error('getPhotoAlbums fail, message = ', err);
    }
  });
}

getPhotoAlbums

getPhotoAlbums(options: AlbumFetchOptions): Promise<FetchResult<Album>>;

获取相册,使用Promise方式返回结果。

此接口即将废弃,请使用getAlbums10+的新接口。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
optionsAlbumFetchOptions相册检索选项。

返回值:

类型说明
Promise<FetchResult<Album>>Promise对象,返回相册检索结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not AlbumFetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getPhotoAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: userFileManager.AlbumFetchOptions = {
    predicates: predicates
  };
  try {
    let fetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions);
    console.info('album.count = ' + fetchResult.getCount());
    const album: userFileManager.Album = await fetchResult.getFirstObject();
    console.info('first album.albumName = ' + album.albumName);
  } catch (err) {
    console.error('getPhotoAlbums fail, message = ' + err);
  }
}

getPrivateAlbum

getPrivateAlbum(type: PrivateAlbumType, callback: AsyncCallback<FetchResult<PrivateAlbum>>): void;

获取系统相册,使用 callback 方式返回系统相册的数组。

此接口即将废弃,请使用getAlbums10+的新接口。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
typePrivateAlbumType系统相册类型。
callbackAsyncCallback<FetchResult<PrivateAlbum>>callback返回相册检索结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type type is not PrivateAlbumType.

示例:

async function example() {
  console.info('getPrivateAlbumDemo');
  mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH, async (err, fetchResult) => {
    if (fetchResult != undefined) {
      let trashAlbum: userFileManager.PrivateAlbum = await fetchResult.getFirstObject();
      console.info('first album.albumName = ' + trashAlbum.albumName);
    } else {
      console.error('getPrivateAlbum failed. message = ', err);
    }
  });
}

getPrivateAlbum

getPrivateAlbum(type: PrivateAlbumType): Promise<FetchResult<PrivateAlbum>>;

获取系统相册,使用Promise方式返回结果。

此接口即将废弃,请使用getAlbums10+的新接口。

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

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名类型必填说明
typePrivateAlbumType系统相册类型。

返回值:

类型说明
Promise<FetchResult<PrivateAlbum>>Promise对象,返回相册检索结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type type is not PrivateAlbumType.

示例:

async function example() {
  console.info('getPrivateAlbumDemo');
  try {
    let fetchResult: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
    let trashAlbum: userFileManager.PrivateAlbum = await fetchResult.getFirstObject();
    console.info('first album.albumName = ' + trashAlbum.albumName);
  } catch (err) {
    console.error('getPrivateAlbum failed. message = ', err);
  }
}

getAudioAssets

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

获取音频文件,使用callback方式返回结果。

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

需要权限:ohos.permission.READ_AUDIO

参数:

参数名类型必填说明
optionsFetchOptions检索选项。
callbackAsyncCallback<FetchResult<FileAsset>>callback返回音频检索结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getAudioAssets');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };

  mgr.getAudioAssets(fetchOptions, async (err, fetchResult) => {
    if (fetchResult != undefined) {
      console.info('fetchFileResult success');
      let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
      if (fileAsset != undefined) {
        console.info('fileAsset.displayName :' + fileAsset.displayName);
      }
    } else {
      console.error('fetchFileResult fail' + err);
    }
  });
}

getAudioAssets

getAudioAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;

获取音频文件,使用callback方式返回结果。

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

需要权限:ohos.permission.READ_AUDIO

参数:

参数名类型必填说明
optionsFetchOptions检索选项。

返回值:

类型说明
Promise<FetchResult<FileAsset>>Promise对象,返回音频检索结果。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getAudioAssets');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getAudioAssets(fetchOptions);
    if (fetchResult != undefined) {
      console.info('fetchFileResult success');
      let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
      if (fileAsset != undefined) {
        console.info('fileAsset.displayName :' + fileAsset.displayName);
      }
    }
  } catch (err) {
    console.error('getAudioAssets failed, message = ', err);
  }
}

delete

delete(uri: string, callback: AsyncCallback<void>): void;

删除媒体文件,删除的文件进入到回收站。

需要权限:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
uristring媒体文件uri。
callbackAsyncCallback<void>callback返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type uri is not string.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('deleteAssetDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();


    if (asset == undefined) {
      console.error('asset not exist');
      return;
    }
    mgr.delete(asset.uri, (err) => {
      if (err == undefined) {
        console.info('delete successfully');
      } else {
        console.error('delete failed with error: ' + err);
      }
    });
  } catch (err) {
    console.info('fetch failed, message =', err);
  }
}

delete

delete(uri: string): Promise<void>;

删除媒体文件,删除的文件进入到回收站。

需要权限:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
uristring媒体文件uri。

返回值:

类型说明
Promise<void>Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type uri is not string.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('deleteDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    if (asset == undefined) {
      console.error('asset not exist');
      return;
    }
    await mgr.delete(asset.uri);
    console.info('delete successfully');
  } catch (err) {
    console.error('delete failed with error: ' + err);
  }
}

getActivePeers

getActivePeers(callback: AsyncCallback<Array<PeerInfo>>): void;

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

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

参数:

参数名类型必填说明
callbackAsyncCallback<Array<PeerInfo>>返回在线设备列表。

示例:

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.error('getActivePeers failed. message = ', err);
    }
  });
}

getActivePeers

getActivePeers(): Promise<Array<PeerInfo>>;

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

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

返回值:

类型说明
Promise<Array<PeerInfo>>Promise对象,返回在线设备列表。

示例:

async function example() {
  console.info('getActivePeersDemo');
  try {
    let devicesInfo: Array<userFileManager.PeerInfo> = await mgr.getActivePeers();
    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.error('get distributed fail');
    }
  } catch (err) {
    console.error('getActivePeers failed. message = ', err);
  }
}

getAllPeers

getAllPeers(callback: AsyncCallback<Array<PeerInfo>>): void;

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

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

参数:

参数名类型必填说明
callbackAsyncCallback<Array<PeerInfo>>返回在线设备列表。

示例:

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.error('getAllPeers failed. message = ', err);
    }
  });
}

getAllPeers

getAllPeers(): Promise<Array<PeerInfo>>;

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

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

返回值:

类型说明
Promise<Array<PeerInfo>>Promise对象,返回所有设备列表。

示例:

async function example() {
  console.info('getAllPeersDemo');
  try {
    let devicesInfo: Array<userFileManager.PeerInfo> = await mgr.getAllPeers();

    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.error('get distributed fail');
    }
  } catch (err) {
    console.error('getAllPeers failed. message = ', err);
  }
}

getPhotoIndex10+

getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions, callback: AsyncCallback<number>): void

获取相册中图片或视频的位置,使用callback方式返回结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO

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

参数:

参数名类型必填说明
photoUristring所查询的图库资源的uri。
albumUristring相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。
optionsFetchOptions检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。
callbackAsyncCallback<number>callback返回相册中资源的索引。

错误码:

接口抛出错误码的详细介绍请参见通用错误码

错误码ID错误信息
401if parameter is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('getPhotoIndexDemo');
    let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOp: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicatesForGetAsset
    };
    // Obtain the uri of the album
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.FAVORITE, fetchOp);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    predicates.orderByAsc(userFileManager.ImageVideoKey.DATE_MODIFIED.toString());
    let fetchOptions: userFileManager.FetchOptions = {
      fetchColumns: [userFileManager.ImageVideoKey.DATE_MODIFIED.toString()],
      predicates: predicates
    };
    let photoFetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOptions);
    let expectIndex = 1;
    // Obtain the uri of the second file
    let photoAsset: userFileManager.FileAsset = await photoFetchResult.getPositionObject(expectIndex);
    mgr.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions, (err, index) => {
      if (err == undefined) {
        console.info(`getPhotoIndex successfully and index is : ${index}`);
      } else {
        console.info(`getPhotoIndex failed;`);
      }
    });
  } catch (error) {
    console.info(`getPhotoIndex failed; error: ${error}`);
  }
}

getPhotoIndex10+

getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise<number>

获取相册中图片或视频的位置,使用Promise方式返回结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO

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

参数:

参数名类型必填说明
photoUristring所查询的图库资源的uri。
albumUristring相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。
optionsFetchOptions检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。

返回值:

类型说明
Promise<number>返回相册中资源的索引。

错误码:

接口抛出错误码的详细介绍请参见通用错误码

错误码ID错误信息
401if parameter is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('getPhotoIndexDemo');
    let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOp: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicatesForGetAsset
    };
    // Obtain the uri of the album
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.FAVORITE, fetchOp);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    predicates.orderByAsc(userFileManager.ImageVideoKey.DATE_MODIFIED.toString());
    let fetchOptions: userFileManager.FetchOptions = {
      fetchColumns: [userFileManager.ImageVideoKey.DATE_MODIFIED.toString()],
      predicates: predicates
    };
    let photoFetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOptions);
    let expectIndex = 1;
    // Obtain the uri of the second file
    let photoAsset: userFileManager.FileAsset = await photoFetchResult.getPositionObject(expectIndex);
    mgr.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions).then((index) => {
      console.info(`getPhotoIndex successfully and index is : ${index}`);
    }).catch((err: BusinessError) => {
      console.info(`getPhotoIndex failed; error: ${err}`);
    });
  } catch (error) {
    console.info(`getPhotoIndex failed; error: ${error}`);
  }
}Copy to clipboardErrorCopied

release

release(callback: AsyncCallback<void>): void

释放UserFileManager实例,使用callback方式返回结果。 当后续不需要使用UserFileManager实例中的方法时调用。

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

参数:

参数名类型必填说明
callbackAsyncCallback<void>回调表示成功还是失败。

示例:

async function example() {
  console.info('releaseDemo');
  mgr.release((err) => {
    if (err != undefined) {
      console.error('release failed. message = ', err);
    } else {
      console.info('release ok.');
    }
  });
}Copy to clipboardErrorCopied

release

release(): Promise<void>

释放UserFileManager实例,使用Promise方式返回结果。 当后续不需要使用UserFileManager 实例中的方法时调用。

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

返回值:

类型说明
Promise<void>Promise对象,返回void。

示例:

async function example() {
  console.info('releaseDemo');
  try {
    await mgr.release();
    console.info('release ok.');
  } catch (err) {
    console.error('release failed. message = ', err);
  }
}Copy to clipboardErrorCopied

on10+

on(uri: string, forSubUri: boolean, callback: Callback<ChangeData>) : void

对指定uri注册监听,使用callback方式返回异步结果。

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

参数:

参数名类型必填说明
uristringFileAsset的uri, Album的uri或DefaultChangeUri的值。
forSubUriboolean是否模糊监听,uri为相册uri时,forSubUri 为true能监听到相册中文件的变化,如果是false只能监听相册本身变化。uri为fileAsset时,forSubUri 为true、false没有区别,uri为DefaultChangeUri时,forSubUri必须为true,如果为false将找不到该uri,收不到任何消息。
callbackCallback<ChangeData>返回要监听的ChangeData。注:uri可以注册多个不同的callback监听,off10+可以关闭该uri所有监听,也可以关闭指定callback的监听。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if parameter is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

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

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

off10+

off(uri: string, callback?: Callback<ChangeData>): void

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

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

参数:

参数名类型必填说明
uristringFileAsset的uri, Album的uri或DefaultChangeUri的值。
callbackCallback<ChangeData>取消on10+注册时的callback的监听,不填时,取消该uri的所有监听。注:off指定注册的callback后不会进入此回调。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if parameter is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

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

on

on(type: ChangeEvent, callback: Callback<void>): void

打开文件管理库变更通知,使用callback方式返回异步结果。

此接口即将废弃,请使用on10+的新接口。

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

参数:

参数名类型必填说明
typeChangeEvent媒体类型
'deviceChange': 注册设备变更
'albumChange': 相册变更
'imageChange': 图片文件变更
'audioChange':  音频文件变更
'videoChange':  视频文件变更
'remoteFileChange': 注册设备上文件变更
callbackCallback<void>callback返回void

示例:

async function example() {
  console.info('onDemo');
  let count = 0;
  mgr.on('imageChange', () => {
    count++;
    // image file had changed, do something
  });
  try {
    let testFileName: string = 'testFile' + Date.now() + '.jpg';
    let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName);
    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
    console.info('createPhotoAsset successfully');
  } catch (err) {
    console.error('createPhotoAsset failed, message = ' + err);
  }
  //sleep 1s
  if (count > 0) {
    console.info('onDemo success');
  } else {
    console.error('onDemo fail');
  }
  mgr.off('imageChange', () => {
    // stop listening success
  });
}Copy to clipboardErrorCopied

off

off(type: ChangeEvent, callback?: Callback<void>): void

关闭文件管理库变更通知,使用callback方式返回异步结果。

此接口即将废弃,请使用off10+的新接口。

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

参数:

参数名类型必填说明
typeChangeEvent媒体类型
'deviceChange': 注册设备变更
'albumChange': 相册变更
'imageChange': 图片文件变更
'audioChange':  音频文件变更
'videoChange':  视频文件变更
'remoteFileChange': 注册设备上文件变更。
callbackCallback<void>callback返回void。

示例:

async function example() {
  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: string = 'testFile' + Date.now() + '.jpg';
    let fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName);
    console.info('createPhotoAsset file displayName' + fileAsset.displayName);
    console.info('createPhotoAsset successfully');
  } catch (err) {
    console.error('createPhotoAsset failed, message = ' + err);
  }
  //sleep 1s
  if (count == 0) {
    console.info('offDemo success');
  } else {
    console.error('offDemo fail');
  }
}Copy to clipboardErrorCopied

FileAsset

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

属性

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

名称类型可读可写说明
uristring媒体文件资源uri(如:file://media/Photo/1/IMG_datetime_0001/displayName.jpg),详情参见用户文件uri介绍中的媒体文件uri
fileTypeFileType媒体文件类型
displayNamestring显示文件名,包含后缀名。

get

get(member: string): MemberType;

获取FileAsset成员参数。

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

参数:

参数名类型必填说明
memberstring成员参数名称例如:ImageVideoKey.DISPLAY_NAME。在get时,除了uri、photoType和displayName三个属性之外,其他的属性都需要在fetchColumns中填入需要get的PhotoKeys,例如:get title属性fetchColumns: ['title']。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('fileAssetGetDemo');
  try {
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: ['title'],
      predicates: predicates
    };
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
    let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    let title: userFileManager.ImageVideoKey = userFileManager.ImageVideoKey.TITLE;
    let fileAssetTitle: userFileManager.MemberType = fileAsset.get(title.toString());
    console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
  } catch (err) {
    console.error('release failed. message = ', err);
  }
}Copy to clipboardErrorCopied

set

set(member: string, value: string): void;

设置FileAsset成员参数。

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

参数:

参数名类型必填说明
memberstring成员参数名称例如:ImageVideoKey.DISPLAY_NAME。
valuestring设置成员参数名称,只能修改DISPLAY_NAME和TITLE的值。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('fileAssetSetDemo');
  try {
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
    let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    let displayName: string = userFileManager.ImageVideoKey.DISPLAY_NAME.toString();
    fileAsset.set(displayName, 'newDisplayName1');
  } catch (err) {
    console.error('release failed. message = ', err);
  }
}Copy to clipboardErrorCopied

commitModify

commitModify(callback: AsyncCallback<void>): void

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
callbackAsyncCallback<void>callback返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('commitModifyDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  let displayName: string = userFileManager.ImageVideoKey.DISPLAY_NAME.toString();
  let fileAssetDisplayName: userFileManager.MemberType = fileAsset.get(displayName);
  console.info('fileAsset get fileAssetDisplayName = ', fileAssetDisplayName);
  let newFileAssetDisplayName = 'new' + fileAssetDisplayName;
  console.info('fileAsset newFileAssetDisplayName = ', newFileAssetDisplayName);
  fileAsset.set(displayName, newFileAssetDisplayName);
  fileAsset.commitModify((err) => {
    if (err == undefined) {
      let commitModifyDisplayName = fileAsset.get(displayName);
      console.info('fileAsset commitModify successfully, commitModifyDisplayName = ', commitModifyDisplayName);
    } else {
      console.error('commitModify failed, message =', err);
    }
  });
}Copy to clipboardErrorCopied

commitModify

commitModify(): Promise<void>

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

需要权限:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO

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

返回值:

类型说明
Promise<void>Promise对象,返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('commitModifyDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  let displayName = userFileManager.ImageVideoKey.DISPLAY_NAME.toString();
  let fileAssetDisplayName: userFileManager.MemberType = fileAsset.get(displayName);
  console.info('fileAsset get fileAssetDisplayName = ', fileAssetDisplayName);
  let newFileAssetDisplayName = 'new' + fileAssetDisplayName;
  console.info('fileAsset newFileAssetDisplayName = ', newFileAssetDisplayName);
  fileAsset.set(displayName, newFileAssetDisplayName);
  try {
    await fileAsset.commitModify();
    let commitModifyDisplayName = fileAsset.get(displayName);
    console.info('fileAsset commitModify successfully, commitModifyDisplayName = ', commitModifyDisplayName);
  } catch (err) {
    console.error('commitModify failed. message = ', err);
  }
}Copy to clipboardErrorCopied

open

open(mode: string, callback: AsyncCallback<number>): void

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

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

需要权限:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
modestring打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)。
callbackAsyncCallback<number>callback返回文件描述符。

示例:

async function example() {
  console.info('openDemo');
   let testFileName: string = 'testFile' + Date.now() + '.jpg';
  const fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName);
  fileAsset.open('rw', (err, fd) => {
    if (fd != undefined) {
      console.info('File fd' + fd);
      fileAsset.close(fd);
    } else {
      console.error('File err' + err);
    }
  });
}Copy to clipboardErrorCopied

open

open(mode: string): Promise<number>

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

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

需要权限:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
modestring打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)。

返回值:

类型说明
Promise<number>Promise对象,返回文件描述符。

示例:

async function example() {
  console.info('openDemo');
  try {
    let testFileName: string = 'testFile' + Date.now() + '.jpg';
    const fileAsset: userFileManager.FileAsset = await mgr.createPhotoAsset(testFileName);
    let fd: number = await fileAsset.open('rw');
    if (fd != undefined) {
      console.info('File fd' + fd);
      fileAsset.close(fd);
    } else {
      console.error(' open File fail');
    }
  } catch (err) {
    console.error('open Demo err' + err);
  }
}Copy to clipboardErrorCopied

close

close(fd: number, callback: AsyncCallback<void>): void

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

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

参数:

参数名类型必填说明
fdnumber文件描述符。
callbackAsyncCallback<void>callback返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('closeDemo');
  try {
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
    const fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    let fd: number = await fileAsset.open('rw');
    console.info('file fd', fd);
    fileAsset.close(fd, (err) => {
      if (err == undefined) {
        console.info('asset close succeed.');
      } else {
        console.error('close failed, message = ' + err);
      }
    });
  } catch (err) {
    console.error('close failed, message = ' + err);
  }
}Copy to clipboardErrorCopied

close

close(fd: number): Promise<void>

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

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

参数:

参数名类型必填说明
fdnumber文件描述符。

返回值:

类型说明
Promise<void>Promise对象,返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('closeDemo');
  try {
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
    const asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    let fd: number = await asset.open('rw');
    console.info('file fd', fd);
    await asset.close(fd);
    console.info('asset close succeed.');
  } catch (err) {
    console.error('close failed, message = ' + err);
  }
}Copy to clipboardErrorCopied

getThumbnail

getThumbnail(callback: AsyncCallback<image.PixelMap>): void

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

需要权限:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO

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

参数:

参数名类型必填说明
callbackAsyncCallback<image.PixelMap>callback返回缩略图的PixelMap。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getThumbnailDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  console.info('asset displayName = ', asset.displayName);
  asset.getThumbnail((err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
      console.error('getThumbnail fail', err);
    }
  });
}Copy to clipboardErrorCopied

getThumbnail

getThumbnail(size: image.Size, callback: AsyncCallback<image.PixelMap>): void

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

需要权限:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO

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

参数:

参数名类型必填说明
sizeimage.Size缩略图尺寸。
callbackAsyncCallback<image.PixelMap>callback返回缩略图的PixelMap。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import image from '@ohos.multimedia.image';

async function example() {
  console.info('getThumbnailDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let size: image.Size = { width: 720, height: 720 };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  const asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  console.info('asset displayName = ', asset.displayName);
  asset.getThumbnail(size, (err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
      console.error('getThumbnail fail', err);
    }
  });
}Copy to clipboardErrorCopied

getThumbnail

getThumbnail(size?: image.Size): Promise<image.PixelMap>

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

需要权限:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO

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

参数:

参数名类型必填说明
sizeimage.Size缩略图尺寸。

返回值:

类型说明
Promise<image.PixelMap>Promise对象,返回缩略图的PixelMap。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import image from '@ohos.multimedia.image';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('getThumbnailDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let size: image.Size = { width: 720, height: 720 };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  const asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  console.info('asset displayName = ', asset.displayName);
  asset.getThumbnail(size).then((pixelMap) => {
    console.info('getThumbnail successful ' + pixelMap);
  }).catch((err: BusinessError) => {
    console.error('getThumbnail fail' + err);
  });
}Copy to clipboardErrorCopied

favorite

favorite(isFavorite: boolean, callback: AsyncCallback<void>): void

将文件设置为收藏文件,使用callback方式返回异步结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
isFavoriteboolean是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。
callbackAsyncCallback<void>callback返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('favoriteDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  const asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  asset.favorite(true, (err) => {
    if (err == undefined) {
      console.info('favorite successfully');
    } else {
      console.error('favorite failed with error:' + err);
    }
  });
}Copy to clipboardErrorCopied

favorite

favorite(isFavorite: boolean): Promise<void>

将文件设置为收藏文件,使用promise方式返回异步结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO

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

参数:

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

返回值:

类型说明
承诺<无效>Promise对象,返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('favoriteDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  const asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  asset.favorite(true).then(() => {
    console.info('favorite successfully');
  }).catch((err: BusinessError) => {
    console.error('favorite failed with error:' + err);
  });
}复制到剪贴板错误复制

setHidden10+

setHidden(hiddenState: boolean, callback: AsyncCallback<void>): void

将文件设置为隐私文件,使用callback方式返回异步结果。

隐私文件存在隐私相册中,对三方应用不开放,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
hiddenState布尔是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。
回调AsyncCallback<void>callback返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码通用错误码

错误码ID错误信息
202Called by non-system application.
13900020if parameter is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('setHiddenDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  const asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  asset.setHidden(true, (err) => {
    if (err == undefined) {
      console.info('setHidden successfully');
    } else {
      console.error('setHidden failed with error:' + err);
    }
  });
}复制到剪贴板错误复制

setHidden10+

setHidden(hiddenState: boolean): Promise<void>

将文件设置为隐私文件,使用promise方式返回异步结果。

隐私文件存在隐私相册中,对三方应用不开放,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
hiddenStateboolean是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。

返回值:

类型说明
Promise<void>Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码通用错误码

错误码ID错误信息
202Called by non-system application.
13900020if parameter is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  // 示例代码为将文件从隐藏相册中恢复,需要先在隐藏相册预置资源
  console.info('setHiddenDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.HIDDEN);
  const album: userFileManager.Album = await albumList.getFirstObject();
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption);
  const asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  asset.setHidden(false).then(() => {
    console.info('setHidden successfully');
  }).catch((err: BusinessError) => {
    console.error('setHidden failed with error:' + err);
  });
}Copy to clipboardErrorCopied

getExif10+

getExif(): Promise<string>

返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。

注意:此接口返回的是exif标签组成的json格式的字符串,完整exif信息由all_exif与ImageVideoKey.USER_COMMENT组成,fetchColumns需要传入这两个字段。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO

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

返回值:

类型说明
Promise<string>返回exif标签组成的json格式的字符串。

支持Exif标签列表

Exif标签的详细信息请参考image.PropertyKey

标签key值标签说明
BitsPerSample每个像素比特数
Orientation图像方向
ImageLength图像长度
ImageWidth图像宽度
GPSLatitudeGPS纬度
GPSLongitudeGPS经度
GPSLatitudeRef经度引用,例如W或E
GPSLongitudeRef纬度引用,例如N或S
DateTimeOriginal拍摄时间
ExposureTime曝光时间
SceneType场景类型
ISOSpeedRatingsISO感光度分值
FNumber光圈F值
DateTime修改时间
GPSTimeStampGPS时间戳
GPSDateStampGPS日期戳
ImageDescription图像描述
Make制造商
MakeNote制造商
Model型号
PhotoMode拍摄模式
SensitivityType感光类型
StandardOutputSensitivity标准输出感光度
RecommendedExposureIndex推荐曝光指数
ApertureValue光圈
MeteringMode测光模式
LightSource光源
Flash闪光灯
FocalLength镜头焦距
UserComment用户注释
PixelXDimension有效图像宽度
PixelYDimension有效图像高度
WhiteBalance白平衡
FocalLengthIn35mmFilm35mm等效焦距
ExposureBiasValue曝光补偿

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('getExifDemo');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    predicates.isNotNull('all_exif')
    let fetchOptions: userFileManager.FetchOptions = {
      fetchColumns: ['all_exif', userFileManager.ImageVideoKey.USER_COMMENT.toString()],
      predicates: predicates
    };
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions);
    let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    console.info('getExifDemo fileAsset displayName: ' + JSON.stringify(fileAsset.displayName));
    let exifMessage: string = await fileAsset.getExif();
    let userCommentKey: string = 'UserComment';
    let userComment: string = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]);
    console.info('getExifDemo userComment: ' + JSON.stringify(userComment));
    fetchResult.close();
  } catch (err) {
    console.error('getExifDemoCallback failed with error: ' + err);
  }
}复制到剪贴板错误复制

getExif10+

getExif(callback: AsyncCallback<string>): void

返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。

注意:此接口返回的是exif标签组成的json格式的字符串,完整exif信息由all_exif与ImageVideoKey.USER_COMMENT组成,fetchColumns需要传入这两个字段。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO

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

参数:

参数名类型必填说明
回调AsyncCallback<string>返回exif标签组成的json格式的字符串。

支持Exif标签列表

Exif标签的详细信息请参考image.PropertyKey

标签key值标签说明
BitsPerSample每个像素比特数
Orientation图像方向
ImageLength图像长度
ImageWidth图像宽度
GPSLatitudeGPS纬度
GPSLongitudeGPS经度
GPSLatitudeRef经度引用,例如W或E
GPSLongitudeRef纬度引用,例如N或S
DateTimeOriginal拍摄时间
ExposureTime曝光时间
SceneType场景类型
ISOSpeedRatingsISO感光度分值
FNumber光圈F值
DateTime修改时间
GPSTimeStampGPS时间戳
GPSDateStampGPS日期戳
ImageDescription图像描述
Make制造商
MakeNote制造商
Model型号
PhotoMode拍摄模式
SensitivityType感光类型
StandardOutputSensitivity标准输出感光度
RecommendedExposureIndex推荐曝光指数
ApertureValue光圈
MeteringMode测光模式
LightSource光源
Flash闪光灯
FocalLength镜头焦距
UserComment用户注释
PixelXDimension有效图像宽度
PixelYDimension有效图像高度
WhiteBalance白平衡
FocalLengthIn35mmFilm35mm等效焦距
ExposureBiasValue曝光补偿

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('getExifDemo');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    predicates.isNotNull('all_exif')
    let fetchOptions: userFileManager.FetchOptions = {
      fetchColumns: ['all_exif', userFileManager.ImageVideoKey.USER_COMMENT.toString()],
      predicates: predicates
    };
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions);
    let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    console.info('getExifDemo fileAsset displayName: ' + JSON.stringify(fileAsset.displayName));
    let userCommentKey: string = 'UserComment';
    fileAsset.getExif((err, exifMessage) => {
      if (exifMessage != undefined) {
        let userComment: string = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]);
        console.info('getExifDemo userComment: ' + JSON.stringify(userComment));
      } else {
        console.error('getExif failed, message = ', err);
      }
    });
    fetchResult.close();
  } catch (err) {
    console.error('getExifDemoCallback failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

setUserComment10+

setUserComment(userComment: string): Promise<void>

修改图片或者视频的备注信息,该方法使用Promise来返回结果。

注意:此接口只可修改图片或者视频的备注信息。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
userCommentstring待修改的图片或视频的备注信息,备注信息最长为140字符。

返回值:

类型说明
Promise<void>Promise对象,返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('setUserCommentDemo')
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOptions: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions);
    let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    let userComment: string = 'test_set_user_comment';
    await fileAsset.setUserComment(userComment);
  } catch (err) {
    console.error('setUserCommentDemoCallback failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

setUserComment10+

setUserComment(userComment: string, callback: AsyncCallback<void>): void

修改图片或者视频的备注信息,该方法使用callback形式来返回结果。

注意:此接口只可修改图片或者视频的备注信息。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
userComment字符串待修改的图片或视频的备注信息,备注信息最长为140字符。
回调AsyncCallback<void>callback返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('setUserCommentDemo')
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOptions: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOptions);
    let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    let userComment: string = 'test_set_user_comment';
    fileAsset.setUserComment(userComment, (err) => {
      if (err === undefined) {
        console.info('setUserComment successfully');
      } else {
        console.error('setUserComment failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('setUserCommentDemoCallback failed with error: ' + err);
  }
}复制到剪贴板错误复制

FetchResult

文件检索结果集。

getCount

getCount(): number

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

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

返回值:

类型说明
检索到的文件总数。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getCountDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  const fetchCount: number = fetchResult.getCount();
  console.info('fetchCount = ', fetchCount);
}复制到剪贴板错误复制

isAfterLast

isAfterLast(): boolean

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

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

返回值:

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

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  const fetchCount: number = fetchResult.getCount();
  console.info('count:' + fetchCount);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getLastObject();
  if (fetchResult.isAfterLast()) {
    console.info('fileAsset isAfterLast displayName = ', fileAsset.displayName);
  } else {
    console.info('fileAsset  not isAfterLast ');
  }
}Copy to clipboardErrorCopied

close

close(): void

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

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

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('fetchResultCloseDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
    fetchResult.close();
    console.info('close succeed.');
  } catch (err) {
    console.error('close fail. message = ' + err);
  }
}Copy to clipboardErrorCopied

getFirstObject

getFirstObject(callback: AsyncCallback<T>): void

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

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

参数:

参数名类型必填说明
callbackAsyncCallback<T>异步获取结果集中的第一个完成后的回调。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getFirstObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getFirstObject((err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('fileAsset displayName: ', fileAsset.displayName);
    } else {
      console.error('fileAsset failed with err:' + err);
    }
  });
}Copy to clipboardErrorCopied

getFirstObject

getFirstObject(): Promise<T>

获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。

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

返回值:

类型说明
Promise<T>Promise对象,返回结果集中第一个对象。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getFirstObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  console.info('fileAsset displayName: ', fileAsset.displayName);
}Copy to clipboardErrorCopied

getNextObject

getNextObject(callback: AsyncCallback<T>): void

获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。 在调用此方法之前,必须使用isAfterLast()来检查当前位置是否为最后一行。

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

参数:

参数名类型必填说明
callbackAsyncCallback<T>异步返回结果集中下一个之后的回调。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getNextObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = 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.error('fileAsset failed with err: ' + err);
      }
    });
  }
}Copy to clipboardErrorCopied

getNextObject

getNextObject(): Promise<T>

获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。 在调用此方法之前,必须使用isAfterLast()来检查当前位置是否为最后一行。

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

返回值:

类型说明
Promise<T>Promise对象,返回结果集中下一个对象。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getNextObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  await fetchResult.getFirstObject();
  if (!fetchResult.isAfterLast()) {
    let fileAsset: userFileManager.FileAsset = await fetchResult.getNextObject();
    console.info('fileAsset displayName: ', fileAsset.displayName);
  }
}Copy to clipboardErrorCopied

getLastObject

getLastObject(callback: AsyncCallback<T>): void

获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。

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

参数:

参数名类型必填说明
callbackAsyncCallback<T>异步返回结果集中最后一个的回调。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getLastObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getLastObject((err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('fileAsset displayName: ', fileAsset.displayName);
    } else {
      console.error('fileAsset failed with err: ' + err);
    }
  });
}Copy to clipboardErrorCopied

getLastObject

getLastObject(): Promise<T>

获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。

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

返回值:

类型说明
Promise<T>Promise对象,返回结果集中最后一个对象。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getLastObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getLastObject();
  console.info('fileAsset displayName: ', fileAsset.displayName);
}Copy to clipboardErrorCopied

getPositionObject

getPositionObject(index: number, callback: AsyncCallback<T>): void

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

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

参数:

参数名类型必填说明
indexnumber要获取的文件的索引,从0开始。
callbackAsyncCallback<T>异步返回指定索引的文件资产的回调。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type index is not number.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getPositionObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getPositionObject(0, (err, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('fileAsset displayName: ', fileAsset.displayName);
    } else {
      console.error('fileAsset failed with err: ' + err);
    }
  });
}Copy to clipboardErrorCopied

getPositionObject

getPositionObject(index: number): Promise<T>

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

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

参数:

参数名类型必填说明
indexnumber要获取的文件的索引,从0开始。

返回值:

类型说明
Promise<T>Promise对象,返回结果集中指定索引的一个对象。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type index is not number.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getPositionObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getPositionObject(0);
  console.info('fileAsset displayName: ', fileAsset.displayName);
}Copy to clipboardErrorCopied

getAllObject10+

getAllObject(callback: AsyncCallback<Array<T>>): void

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

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

参数:

参数名类型必填说明
callbackAsyncCallback<Array<T>>异步获取结果集中的所有文件资产完成后的回调。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getAllObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  fetchResult.getAllObject((err, fileAssetList) => {
    if (fileAssetList != undefined) {
      console.info('fileAssetList length: ', fileAssetList.length);
    } else {
      console.error('fileAssetList failed with err:' + err);
    }
  });
}Copy to clipboardErrorCopied

getAllObject10+

getAllObject(): Promise<Array<T>>

获取文件检索结果中的所有文件资产。此方法使用promise方式来异步返回。

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

返回值:

类型说明
Promise<Array<T>>Promise对象,返回结果集中所有文件资产数组。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getAllObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
  let fileAssetList: Array<userFileManager.FileAsset> = await fetchResult.getAllObject();
  console.info('fileAssetList length: ', fileAssetList.length);
}Copy to clipboardErrorCopied

Album

实体相册

属性

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

名称类型可读可写说明
albumType10+AlbumType相册类型。
albumSubType10+AlbumSubType相册子类型。
albumNamestring用户相册可写,预置相册不可写相册名称。
albumUristring相册Uri。
countnumber相册中文件数量。
coverUristring用户相册可写,预置相册不可写封面文件Uri。

getPhotoAssets

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

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

需要权限:ohos.permission.READ_IMAGEVIDEO

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

参数:

参数名类型必填说明
optionsFetchOptions检索选项。
callbackAsyncCallback<FetchResult<FileAsset>>callback返回图片和视频数据结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('albumGetFileAssetsDemoCallback');

  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: userFileManager.AlbumFetchOptions = {
    predicates: predicates
  };
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions);
  let album: userFileManager.Album = await albumList.getFirstObject();
  album.getPhotoAssets(fetchOption, (err, albumFetchResult) => {
    if (albumFetchResult != undefined) {
      console.info('album getPhotoAssets successfully, getCount: ' + albumFetchResult.getCount());
    } else {
      console.error('album getPhotoAssets failed with error: ' + err);
    }
  });
}Copy to clipboardErrorCopied

getPhotoAssets

getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;

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

需要权限:ohos.permission.READ_IMAGEVIDEO

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

参数:

参数名类型必填说明
optionsFetchOptions检索选项。

返回值:

类型说明
Promise<FetchResult<FileAsset>>Promise对象,返回图片和视频数据结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('albumGetFileAssetsDemoPromise');

  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: userFileManager.AlbumFetchOptions = {
    predicates: predicates
  };
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  const albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions);
  const album: userFileManager.Album = await albumList.getFirstObject();
  album.getPhotoAssets(fetchOption).then((albumFetchResult) => {
    console.info('album getFileAssets successfully, getCount: ' + albumFetchResult.getCount());
  }).catch((err: BusinessError) => {
    console.error('album getFileAssets failed with error: ' + err);
  });
}Copy to clipboardErrorCopied

commitModify

commitModify(callback: AsyncCallback<void>): void;

更新相册属性修改到数据库中。该方法使用callback形式来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
callbackAsyncCallback<void>callback返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('albumCommitModifyDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: userFileManager.AlbumFetchOptions = {
    predicates: predicates
  };
  const albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions);
  const album: userFileManager.Album = await albumList.getFirstObject();
  album.albumName = 'hello';
  album.commitModify((err) => {
    if (err != undefined) {
      console.error('commitModify failed with error: ' + err);
    } else {
      console.info('commitModify successfully');
    }
  });
}Copy to clipboardErrorCopied

commitModify

commitModify(): Promise<void>;

更新相册属性修改到数据库中。该方法使用Promise来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

返回值:

类型说明
Promise<void>Promise对象,返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('albumCommitModifyDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: userFileManager.AlbumFetchOptions = {
    predicates: predicates
  };
  try {
    let albumList: userFileManager.FetchResult<userFileManager.Album> = await mgr.getPhotoAlbums(albumFetchOptions);
    let album: userFileManager.Album = await albumList.getFirstObject();
    album.albumName = 'hello';
    album.commitModify().then(() => {
      console.info('commitModify successfully');
    }).catch((err: BusinessError) => {
      console.error('commitModify failed with error: ' + err);
    });
  } catch (err) {
    console.error('getPhotoAlbums failed. message = ', err);
  }
}Copy to clipboardErrorCopied

addPhotoAssets10+

addPhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void;

往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
assetsArray<FileAsset>待添加到相册中的图片或视频数组。
callbackAsyncCallback<void>callback返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if PhotoAssets is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('addPhotoAssetsDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    album.addPhotoAssets([asset], (err) => {
      if (err === undefined) {
        console.info('album addPhotoAssets successfully');
      } else {
        console.error('album addPhotoAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('addPhotoAssetsDemoCallback failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

addPhotoAssets10+

addPhotoAssets(assets: Array<FileAsset>): Promise<void>;

往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
assetsArray<FileAsset>待添加到相册中的图片或视频数组。

返回值:

类型说明
Promise<void>Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if PhotoAssets is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('addPhotoAssetsDemoPromise');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await mgr.getPhotoAssets(fetchOption);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    album.addPhotoAssets([asset]).then(() => {
      console.info('album addPhotoAssets successfully');
    }).catch((err: BusinessError) => {
      console.error('album addPhotoAssets failed with error: ' + err);
    });
  } catch (err) {
    console.error('addPhotoAssetsDemoPromise failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

removePhotoAssets10+

removePhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void;

从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
assetsArray<FileAsset>相册中待移除的图片或视频数组。
callbackAsyncCallback<void>callback返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if PhotoAssets is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('removePhotoAssetsDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    album.removePhotoAssets([asset], (err) => {
      if (err === undefined) {
        console.info('album removePhotoAssets successfully');
      } else {
        console.error('album removePhotoAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('removePhotoAssetsDemoCallback failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

removePhotoAssets10+

removePhotoAssets(assets: Array<FileAsset>): Promise<void>;

从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
assetsArray<FileAsset>相册中待移除的图片或视频数组。

返回值:

类型说明
Promise<void>Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if PhotoAssets is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('removePhotoAssetsDemoPromise');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.USER, userFileManager.AlbumSubType.USER_GENERIC);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    album.removePhotoAssets([asset]).then(() => {
      console.info('album removePhotoAssets successfully');
    }).catch((err: BusinessError) => {
      console.error('album removePhotoAssets failed with error: ' + err);
    });
  } catch (err) {
    console.error('removePhotoAssetsDemoPromise failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

recoverPhotoAssets10+

recoverPhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void;

从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
assetsArray<FileAsset>回收站中待恢复图片或者视频数组。
callbackAsyncCallback<void>callback返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if PhotoAssets is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('recoverPhotoAssetsDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    album.recoverPhotoAssets([asset], (err) => {
      if (err === undefined) {
        console.info('album recoverPhotoAssets successfully');
      } else {
        console.error('album recoverPhotoAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('recoverPhotoAssetsDemoCallback failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

recoverPhotoAssets10+

recoverPhotoAssets(assets: Array<FileAsset>): Promise<void>;

从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
assetsArray<FileAsset>回收站中待恢复图片或者视频数组。

返回值:

类型说明
Promise<void>Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if PhotoAssets is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('recoverPhotoAssetsDemoPromise');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    album.recoverPhotoAssets([asset]).then(() => {
      console.info('album recoverPhotoAssets successfully');
    }).catch((err: BusinessError) => {
      console.error('album recoverPhotoAssets failed with error: ' + err);
    });
  } catch (err) {
    console.error('recoverPhotoAssetsDemoPromise failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

deletePhotoAssets10+

deletePhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void;

从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。

注意:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
assetsArray<FileAsset>回收站中待彻底删除图片或者视频数组。
callbackAsyncCallback<void>callback返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if PhotoAssets is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('deletePhotoAssetsDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    album.deletePhotoAssets([asset], (err) => {
      if (err === undefined) {
        console.info('album deletePhotoAssets successfully');
      } else {
        console.error('album deletePhotoAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('deletePhotoAssetsDemoCallback failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

deletePhotoAssets10+

deletePhotoAssets(assets: Array<FileAsset>): Promise<void>;

从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。

注意:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

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

参数:

参数名类型必填说明
assetsArray<FileAsset>回收站中待彻底删除图片或者视频数组。

返回值:

类型说明
Promise<void>Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if PhotoAssets is invalid.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('deletePhotoAssetsDemoPromise');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: userFileManager.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: userFileManager.FetchResult<userFileManager.Album> = await mgr.getAlbums(userFileManager.AlbumType.SYSTEM, userFileManager.AlbumSubType.TRASH);
    let album: userFileManager.Album = await albumFetchResult.getFirstObject();
    let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await album.getPhotoAssets(fetchOption);
    let asset: userFileManager.FileAsset = await fetchResult.getFirstObject();
    album.deletePhotoAssets([asset]).then(() => {
      console.info('album deletePhotoAssets successfully');
    }).catch((err: BusinessError) => {
      console.error('album deletePhotoAssets failed with error: ' + err);
    });
  } catch (err) {
    console.error('deletePhotoAssetsDemoPromise failed with error: ' + err);
  }
}Copy to clipboardErrorCopied

PrivateAlbum

系统相册。

此接口即将废弃,请使用Album接口替代。

属性

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

名称类型可读可写说明
albumNamestring相册名称。
albumUristring相册Uri。
dateModifiednumber修改日期。
countnumber相册中文件数量。
coverUristring封面文件Uri。

getPhotoAssets

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

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

此接口即将废弃,请使用Album.getPhotoAssets接口替代。

需要权限:ohos.permission.READ_IMAGEVIDEO

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

参数:

参数名类型必填说明
optionsFetchOptions检索选项。
callbackAsyncCallback<FetchResult<FileAsset>>callback返回图片和视频数据结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('privateAlbumGetFileAssetsDemoCallback');
  let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  const trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject();
  trashAlbum.getPhotoAssets(fetchOption, (err, fetchResult) => {
    if (fetchResult != undefined) {
      let count = fetchResult.getCount();
      console.info('fetchResult.count = ', count);
    } else {
      console.error('getFileAssets failed, message = ', err);
    }
  });
}
Copy to clipboardErrorCopied

getPhotoAssets

getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;

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

此接口即将废弃,请使用Album.getPhotoAssets接口替代。

需要权限:ohos.permission.READ_IMAGEVIDEO

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

参数:

参数名类型必填说明
optionsFetchOptions检索选项。

返回值:

类型说明
Promise:FetchResult<FileAsset>Promise对象,返回图片和视频数据结果集。

错误码:

接口抛出错误码的详细介绍请参见文件管理错误码

错误码ID错误信息
13900020if type options is not FetchOptions.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('privateAlbumGetFileAssetsDemoPromise');
  let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  const trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject();
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption);
  let count = fetchResult.getCount();
  console.info('fetchResult.count = ', count);
}Copy to clipboardErrorCopied

delete

delete(uri: string, callback: AsyncCallback<void>): void;

删除系统相册中的文件,仅支持删除回收站相册中文件。

此接口即将废弃,请使用Album.deletePhotoAssets接口替代。

需要权限:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
uristring系统相册中文件的uri。
callbackAsyncCallback<void>callback返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('privateAlbumDeleteCallback');
  let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject();
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  let deleteFileUri = fileAsset.uri;
  trashAlbum.delete(deleteFileUri, (err) => {
    if (err != undefined) {
      console.error('trashAlbum.delete failed, message = ', err);
    } else {
      console.info('trashAlbum.delete successfully');
    }
  });
}Copy to clipboardErrorCopied

delete

delete(uri: string): Promise<void>;

删除系统相册中的文件,仅支持删除回收站相册中文件。

此接口即将废弃,请使用Album.deletePhotoAssets接口替代。

需要权限:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
uristring系统相册中文件的uri。

返回值:

类型说明
Promise<void>Promise对象,返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('privateAlbumDeleteDemoPromise');
  let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject();
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  let deleteFileUri = fileAsset.uri;
  trashAlbum.delete(deleteFileUri).then(() => {
    console.info('trashAlbum.delete successfully');
  }).catch((err: BusinessError) => {
    console.error('trashAlbum.delete failed, message = ', err);
  });
}Copy to clipboardErrorCopied

recover

recover(uri: string, callback: AsyncCallback<void>): void;

恢复系统相册中的文件,仅支持恢复回收站相册中文件。

此接口即将废弃,请使用Album.recoverPhotoAssets接口替代。

需要权限:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
uristring系统相册中文件的uri。
callbackAsyncCallback<void>callback返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('privateAlbumRecoverDemoCallback');
  let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject();
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  let recoverFileUri: string = fileAsset.uri;
  trashAlbum.recover(recoverFileUri, (err) => {
    if (err != undefined) {
      console.error('trashAlbum.recover failed, message = ', err);
    } else {
      console.info('trashAlbum.recover successfully');
    }
  });
}Copy to clipboardErrorCopied

recover

recover(uri: string): Promise<void>;

恢复系统相册中的文件,仅支持恢复回收站相册中文件。

此接口即将废弃,请使用Album.recoverPhotoAssets接口替代。

需要权限:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO

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

参数:

参数名类型必填说明
uristring系统相册中文件的uri。

返回值:

类型说明
Promise<void>Promise对象,返回void。

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('privateAlbumRecoverDemoPromise');
  let albumList: userFileManager.FetchResult<userFileManager.PrivateAlbum> = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: userFileManager.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let trashAlbum: userFileManager.PrivateAlbum = await albumList.getFirstObject();
  let fetchResult: userFileManager.FetchResult<userFileManager.FileAsset> = await trashAlbum.getPhotoAssets(fetchOption);
  let fileAsset: userFileManager.FileAsset = await fetchResult.getFirstObject();
  let recoverFileUri: string = fileAsset.uri;
  trashAlbum.recover(recoverFileUri).then(() => {
    console.info('trashAlbum.recover successfully');
  }).catch((err: BusinessError) => {
    console.error('trashAlbum.recover failed, message = ', err);
  });
}Copy to clipboardErrorCopied

MemberType

成员类型。

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

名称类型可读可写说明
numbernumbernumber类型。
stringstringstring类型。
booleanbooleanboolean类型。

ChangeEvent

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

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

名称类型可读可写说明
deviceChangestring设备。
albumChangestring相册。
imageChangestring图片。
audioChangestring音频。
videoChangestring视频。
remoteFileChangestring远程文件。

PeerInfo

注册设备的信息。

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

名称类型可读可写说明
deviceNamestring注册设备的名称。
networkIdstring注册设备的网络ID。
isOnlineboolean是否在线。

FileType

枚举,媒体文件类型。

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

名称说明
IMAGE1图片。
VIDEO2视频。
AUDIO3音频。

PhotoSubType10+

枚举,不同FileAsset的类型。

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

名称说明
DEFAULT0默认照片类型。
SCREENSHOT1截屏录屏文件类型。
CAMERA2相机拍摄的照片和视频类型。

PositionType10+

枚举,文件位置,表示文件在本地或云端。

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

名称说明
LOCAL1文件只存在于本端设备。
CLOUD2文件只存在于云端。
BOTH3文件在本地和云中都存在。

AlbumType10+

枚举,相册类型,表示是用户相册还是系统预置相册。

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

名称说明
USER0用户相册。
SYSTEM1024系统预置相册。

AlbumSubType10+

枚举,相册子类型,表示具体的相册类型。

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

名称说明
USER_GENERIC1用户相册。
FAVORITE1025收藏夹。
VIDEO1026视频相册。
HIDDEN1027隐藏相册。
TRASH1028回收站。
SCREENSHOT1029截屏和录屏相册。
CAMERA1030相机拍摄的照片和视频相册。
ANY2147483647任意相册。

PrivateAlbumType

枚举,系统相册类型。

此接口即将废弃,请使用AlbumTypeAlbumSubType和接口替代。

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

名称说明
TYPE_FAVORITE0收藏夹相册。
TYPE_TRASH1回收站相册。

AudioKey

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

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

名称说明
URIuri文件uri。
DISPLAY_NAMEdisplay_name显示名字。
DATE_ADDEDdate_added添加日期(添加文件时间距1970年1月1日的秒数值)。
DATE_MODIFIEDdate_modified修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。
TITLEtitle文件标题。
ARTISTartist作者。
AUDIOALBUMaudio_album专辑。
DURATIONduration持续时间(单位:毫秒)。
FAVORITEfavorite收藏。

ImageVideoKey

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

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

名称说明
URIuri文件uri。
FILE_TYPEfile_type媒体文件类型。
DISPLAY_NAMEdisplay_name显示名字。
DATE_ADDEDdate_added添加日期(添加文件时间距1970年1月1日的秒数值)。
DATE_MODIFIEDdate_modified修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。
TITLEtitle文件标题。
DURATIONduration持续时间(单位:毫秒)。
WIDTHwidth图片宽度(单位:像素)。
HEIGHTheight图片高度(单位:像素)。
DATE_TAKENdate_taken拍摄日期(文件拍照时间距1970年1月1日的秒数值)。
ORIENTATIONorientation图片文件的方向。
FAVORITEfavorite收藏。
POSITION10+position文件位置类型。
DATE_TRASHED10+date_trashed删除日期(删除文件时间距1970年1月1日的秒数值)。
HIDDEN10+hidden文件的隐藏状态。
CAMERA_SHOT_KEY10+camera_shot_key锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。
USER_COMMENT10+user_comment用户注释信息。

AlbumKey

枚举,相册关键信息。

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

名称说明
URIuri相册uri。
FILE_TYPEfile_type媒体文件类型。
ALBUM_NAMEalbum_name相册名字。
DATE_ADDEDdate_added添加日期(添加文件时间距1970年1月1日的秒数值)。
DATE_MODIFIEDdate_modified修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。

PhotoCreateOptions10+

图片或视频的创建选项。

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

名称类型必填说明
subTypePhotoSubType图片或者视频的子类型。
cameraShotKeystring锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。

FetchOptions

检索条件。

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

名称类型可读可写说明
fetchColumnsArray<string>检索条件,指定列名查询,如果该参数为空时默认查询uri、name、fileType(具体字段名称以检索对象定义为准)且使用get接口去获取当前对象的其他属性时将会报错。示例:
fetchColumns: ['uri', 'title']。
predicatesdataSharePredicates.DataSharePredicates谓词查询,显示过滤条件。

AlbumFetchOptions

相册检索条件。

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

名称类型可读可写说明
predicatesdataSharePredicates.DataSharePredicates谓词查询,显示过滤条件。

ChangeData10+

监听器回调函数的值。

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

名称类型可读可写说明
typeNotifyTypeChangeData的通知类型。
urisArray<string>相同NotifyType的所有uri,可以是FileAsset或Album。
subUrisArray<string>相册中变动文件的uri数组。

NotifyType10+

枚举,通知事件的类型。

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

名称说明
NOTIFY_ADD0添加文件集或相册通知的类型。
NOTIFY_UPDATE1文件集或相册的更新通知类型。
NOTIFY_REMOVE2删除文件集或相册的通知类型。
NOTIFY_ALBUM_ADD_ASSET3在相册中添加的文件集的通知类型。
NOTIFY_ALBUM_REMOVE_ASSET4在相册中删除的文件集的通知类型。

DefaultChangeUri10+

枚举,DefaultChangeUri子类型。

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

名称说明
DEFAULT_PHOTO_URIfile://media/Photo默认PhotoAsset的Uri,与forSubUri{true}一起使用,将接收所有PhotoAsset的更改通知。
DEFAULT_ALBUM_URIfile://media/PhotoAlbum默认相册的Uri,与forSubUri{true}一起使用,将接收所有相册的更改通知。
DEFAULT_AUDIO_URIfile://media/Audio默认AudioAsset的Uri,与forSubUri{true}一起使用,将接收所有AudioAsset的更改通知。

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(HarmonyOS NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值