提交 d3dd10ab 编写于 作者: Z zhang-daiyue

add userFileManager.md

Signed-off-by: Nzhang-daiyue <zhangdaiyue1@huawei.com>
Change-Id: Id2ae58efa4ef26b5e09b511fa1b6eda5c9ff7954

Change-Id: I4ea38f6b7c908400bac4941f73efd54c515d2317
上级 10e94e22
# 用户数据管理 # 用户数据管理
该模块提供用户数据管理能力,包括访问、修改用户等用户公共媒体数据信息等常用功能。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该模块从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 > 该模块从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
> 本模块下的接口均为系统接口
## 导入模块 ## 导入模块
```js ```ts
import userFileManager from '@ohos.filemanagement.userfile_manager'; import userFileManager from '@ohos.filemanagement.userFileManager';
``` ```
## userFileManager.getUserFileMgr ## userFileManager.getUserFileMgr
...@@ -35,7 +38,7 @@ getUserFileMgr(context: Context): UserFileManager ...@@ -35,7 +38,7 @@ getUserFileMgr(context: Context): UserFileManager
```ts ```ts
const context = getContext(this); const context = getContext(this);
let userFileMgr = userfilemanager.getUserFileMgr(context); let mgr = userfilemanager.getUserFileMgr(context);
``` ```
## userFileManager.getUserFileMgr ## userFileManager.getUserFileMgr
...@@ -58,623 +61,636 @@ getUserFileMgr(): UserFileManager ...@@ -58,623 +61,636 @@ getUserFileMgr(): UserFileManager
**示例:** **示例:**
```js ```ts
let userFileMgr = userfilemanager.getUserFileMgr(); let mgr = userfilemanager.getUserFileMgr();
``` ```
## UserFileManager ## UserFileManager
### getPublicDirectory ### getPhotoAssets
getPhotoAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;FileAsset&gt;&gt;): void;
获取图片和视频资源,使用callback方式返回结果。
getPublicDirectory(type: DirectoryType, callback: AsyncCallback&lt;string>): void;
获取系统预设的公共目录,使用callback方式返回异步结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.READ_IMAGEVIDEO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------ | ---- | ------------------------- | | -------- | ------------------------ | ---- | ------------------------- |
| type | [DirectoryType](#directorytype) | 是 | 公共目录类型 | | options | [FetchOptions](#fetchoptions) | 是 | 图片和视频检索选项 |
| callback | AsyncCallback&lt;string> | 是 | callback 返回公共目录路径 | | callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是 | callback 返回图片和视频检索结果集 |
**示例:** **示例:**
```ts ```ts
async function getPublicDirectoryDemoCallback() { async function example() {
console.info('getPublicDirectoryDemo'); console.info('getPhotoAssets');
let DIR_CAMERA = directoryType.DIR_CAMERA; let predicates = new dataSharePredicates.DataSharePredicates();
console.info('DIR_CAMERA', DIR_CAMERA); let fetchOptions = {
userFileMgr.getPublicDirectory(DIR_CAMERA, (err, dicResult) => { fetchColumns: [],
if (dicResult == 'Camera/') { predicates: predicates
console.info('mediaLibraryTest : getPublicDirectory passed'); };
mgr.getPhotoAssets(fetchOptions, async (err, fetchResult) => {
if (fetchResult != undefined) {
console.info('fetchResult success');
let fileAsset = await fetchResult.getFirstObject();
if (fileAsset != undefined) {
console.info("fileAsset.displayName :" + fileAsset.displayName);
}
} else { } else {
console.info('mediaLibraryTest : getPublicDirectory failed'); console.info('fetchResult fail' + err);
} }
}); })
} }
``` ```
### getPublicDirectory
getPublicDirectory(type: DirectoryType): Promise&lt;string>; ### getPhotoAssets
获取系统预设的公共目录,使用Promise方式返回结果。 getPhotoAssets(options: FetchOptions): Promise&lt;FetchResult&lt;FileAsset&gt;&gt;;
获取图片和视频资源,使用Promise方式返回结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.READ_IMAGEVIDEO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------- | ---- | ------------ | | ------- | ------------------- | ---- | ---------------- |
| type | [DirectoryType](#directorytype) | 是 | 公共目录类型 | | options | [FetchOptions](#fetchoptions) | 是 | 图片和视频检索选项 |
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| ---------------- | ---------------- | | --------------------------- | -------------- |
| Promise\<string> | 返回公共目录路径 | | Promise&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 图片和视频数据结果集 |
**示例:** **示例:**
```ts ```ts
async function getPublicDirectoryDemoPromise() { async function example() {
console.info('getPublicDirectoryDemo'); console.info('getPhotoAssets');
let DIR_CAMERA = directoryType.DIR_CAMERA; let predicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions = {
fetchColumns: [],
predicates: predicates
};
try { try {
let dicResult = await userFileMgr.getPublicDirectory(DIR_CAMERA); var fetchResult = await mgr.getPhotoAssets(fetchOptions)
console.info('mediaLibraryTest : getPublicDirectory passed, result = ', dicResult); if (fetchResult != undefined) {
console.info('fetchResult success');
let fileAsset = await fetchResult.getFirstObject();
if (fileAsset != undefined) {
console.info("fileAsset.displayName :" + fileAsset.displayName);
}
}
} catch (err) { } catch (err) {
console.info('mediaLibraryTest : getPublicDirectory failed, message = ', err); console.info('getPhotoAssets failed, message = ', err);
} }
} }
``` ```
### createPhotoAsset
### getFileAssets createPhotoAsset(displayName: string, albumUri: string, callback: AsyncCallback&lt;FileAsset&gt;): void;
getFileAssets(type: Array&lt;MediaType>, options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult>): void;
获取文件资源,使用callback方式返回结果。 创建图片或视频资源,使用callback方式返回结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.READ_DOCUMENT **需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------ | ---- | ------------------------- | | -------- | ------------------------ | ---- | ------------------------- |
| type | Array&lt;[MediaType](#mediatype)> | 是 | 媒体类型检索范围 | | displayName | string | 是 | 创建的图片或者视频文件名 |
| options | [MediaFetchOptions](#mediafetchoptions) | 是 | 文件检索选项 | | albumUri | string | 是 | 创建的图片或者视频所在相册的uri |
| callback | AsyncCallback&lt;string> | 是 | callback 返回文件检索结果 | | callback | AsyncCallback&lt;[FileAsset](#fileasset)&gt; | 是 | callback 返回创建的图片和视频结果 |
**示例:** **示例:**
```ts ```ts
async function getFileAssetsDemoCallback() { async function example() {
console.info('getFileAssets'); console.info('createPhotoAssetDemo')
let fileKeyObj = userfile_manager.FileKey let predicates = new dataSharePredicates.DataSharePredicates();
let imageType = userfile_manager.MediaType.IMAGE let fetchOptions = {
let fetchOp = { predicates: predicates
selections: '',
selectionArgs: [],
}; };
let albums = await mgr.getPhotoAlbums(fetchOptions)
let album = await albums.getFirstObject()
mgr.createPhotoAsset('testFile.txt', album.albumUri, (err, fileAsset) => {
if (fileAsset != undefined) {
console.info('createPhotoAsset file displayName' + fileAsset.displayName);
console.info('createPhotoAsset successfully');
} else {
console.info('createPhotoAsset failed, message = ', err);
}
})
}
```
userFileMgr.getFileAssets([imageType, ], fetchOp, async (err, fetchFileResult) => { ### createPhotoAsset
if (fetchFileResult != undefined) {
console.info('fetchFileResult success'); createPhotoAsset(displayName: string, callback: AsyncCallback&lt;FileAsset&gt;): void;
let fileAsset = await fetchFileResult.getFirstObject();
创建图片或视频资源,使用callback方式返回结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------ | ---- | ------------------------- |
| displayName | string | 是 | 创建的图片或者视频文件名 |
| callback | AsyncCallback&lt;[FileAsset](#fileasset)&gt; | 是 | callback 返回创建的图片和视频结果 |
**示例:**
```ts
async function example() {
console.info('createPhotoAssetDemo')
mgr.createPhotoAsset('testFile.txt', (err, fileAsset) => {
if (fileAsset != undefined) { if (fileAsset != undefined) {
console.info("fileAsset.displayName :" + fileAsset.displayName); console.info('createPhotoAsset file displayName' + fileAsset.displayName);
}; console.info('createPhotoAsset successfully');
} else {
console.info('createPhotoAsset failed, message = ', err);
} }
}) })
} }
``` ```
### getFileAssets ### createPhotoAsset
getFileAssets(type: Array&lt;MediaType&gt;, options: MediaFetchOptions): Promise&lt;FetchFileResult>; createPhotoAsset(displayName: string, albumUri?: string): Promise&lt;FileAsset&gt;;
获取文件资源,使用Promise方式返回结果。 创建图片或视频资源,使用Promise方式返回结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.READ_DOCUMENT **需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------- | ---- | ---------------- | | -------- | ------------------------ | ---- | ------------------------- |
| type | Array&lt;[MediaType](#mediatype)> | 是 | 媒体类型检索范围 | | displayName | string | 是 | 创建的图片或者视频文件名 |
| options | [MediaFetchOptions](#mediafetchoptions) | 是 | 文件检索选项 | | albumUri | string | 否 | 创建的图片或者视频所在相册的uri |
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------- | -------------- | | --------------------------- | -------------- |
| Promise&lt;[FetchFileResult](#fetchfileresult)> | 文件数据结果集 | | Promise&lt;[FileAsset](#fileasset)&gt; | 返回创建的图片和视频结果 |
**示例:** **示例:**
```ts ```ts
async function getFileAssetsDemoPromise() { async function example() {
console.info('getFileAssets'); console.info('createPhotoAssetDemo')
let fileKeyObj = userfile_manager.FileKey
let imageType = userfile_manager.MediaType.IMAGE
let fetchOp = {
selections: '',
selectionArgs: [],
};
try { try {
var fetchFileResult = await userFileMgr.getFileAssets([imageType, ], fetchOp) let fileAsset = await mgr.createPhotoAsset('testFile.txt')
console.info('createPhotoAsset file displayName' + fileAsset.displayName);
console.info('createPhotoAsset successfully');
} catch (err) { } catch (err) {
console.info('getFileAssets failed, message = ', err); console.info('createPhotoAsset failed, message = ', err);
}
if (fetchFileResult != undefined) {
console.info('fetchFileResult success');
let fileAsset = await fetchFileResult.getFirstObject();
if (fileAsset != undefined) {
console.info("fileAsset.displayName :" + fileAsset.displayName);
};
} }
} }
``` ```
### on ### getPhotoAlbums
on(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange', callback: Callback&lt;void&gt;): void getPhotoAlbums(options: AlbumFetchOptions, callback: AsyncCallback&lt;FetchResult&lt;Album&gt;&gt;): void;
打开文件管理库变更通知,使用callback方式返回异步结果。
获取相册,使用callback方式返回结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.READ_IMAGEVIDEO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------------------------------------ | | -------- | ------------------------ | ---- | ------------------------- |
| type | string | 是 | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange': &nbsp;视频文件变更<br/>'fileChange': &nbsp;文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 | | options | [AlbumFetchOptions](#albumfetchoptions) | 是 | 相册检索选项 |
| callback | Callback&lt;void&gt; | 是 | 回调返回空 | | callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[Album](#album)&gt;&gt; | 是 | callback 返回相册检索结果 |
**示例:** **示例:**
```ts ```ts
async function onDemo() { async function example() {
console.info('onDemo') console.info('getPhotoAlbumsDemo')
userFileMgr.on('imageChange', () => { let predicates = new dataSharePredicates.DataSharePredicates();
// image file had changed, do something let albumFetchOptions = {
}); predicates: predicates
};
mgr.getPhotoAlbums(albumFetchOptions, (err, fetchResult) => {
if (fetchResult != undefined) {
console.info('albums.count = ' + fetchResult.getCount());
fetchResult.getFirstObject((err, album) => {
if (album != undefined) {
console.info('first album.albumName = ' + album.albumName);
} else {
console.info('album is undefined, err = ', err);
}
})
}
console.info('getPhotoAlbums fail, message = ', err);
})
} }
``` ```
### off ### getPhotoAlbums
off(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange', callback?: Callback&lt;void&gt;): void getPhotoAlbums(options: AlbumFetchOptions): Promise&lt;FetchResult&lt;Album&gt;&gt;;
关闭文件管理库变更通知,使用callback方式返回异步结果。 获取相册,使用callback方式返回结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.READ_IMAGEVIDEO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------------------------------------ | | -------- | ------------------------ | ---- | ------------------------- |
| type | string | 是 | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange': &nbsp;视频文件变更<br/>'fileChange': &nbsp;文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 | | options | [AlbumFetchOptions](#albumfetchoptions) | 是 | 相册检索选项 |
| callback | Callback&lt;void&gt; | 否 | 回调返回空 |
**返回值**
| 类型 | 说明 |
| --------------------------- | -------------- |
| Promise&lt;[FetchResult](#fetchresult)&lt;[Album](#album)&gt;&gt; | Promise 返回相册检索结果 |
**示例:** **示例:**
```ts ```ts
async function offDemo() { async function example() {
console.info('offDemo') console.info('getPhotoAlbumsDemo')
userFileMgr.off('imageChange', () => { let predicates = new dataSharePredicates.DataSharePredicates();
// stop listening success let albumFetchOptions = {
}); predicates: predicates
};
try {
let fetchResult = await mgr.getPhotoAlbums(albumFetchOptions);
console.info('album.count = ' + fetchResult.getCount());
const album = await fetchResult.getFirstObject();
console.info('first album.albumName = ' + album.albumName);
} catch (err) {
console.info('getPhotoAlbums fail, message = ' + err);
}
} }
``` ```
### createAsset ### getPrivateAlbum
createAsset(mediaType: MediaType, displayName: string, relativePath: string, callback: AsyncCallback&lt;FileAsset&gt;): void getPrivateAlbum(type: PrivateAlbumType, callback: AsyncCallback&lt;FetchResult&lt;PrivateAlbum&gt;&gt;): void;
创建文件资源,使用callback方式返回结果。
此接口为系统接口 获取系统相册,使用 callback 方式返回系统相册的数组
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------------------- | ---- | ------------------------------------------------------------ | | -------- | ------------------------ | ---- | ------------------------- |
| mediaType | [MediaType](#mediatype) | 是 | 媒体类型 | | type | [PrivateAlbumType](#privatealbumtype) | 是 | 系统相册类型 |
| displayName | string | 是 | 展示文件名 | | callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[PrivateAlbum](#privatealbum)&gt;&gt; | 是 | callback 返回相册检索结果 |
| relativePath | string | 是 | 文件保存路径,可以通过getPublicDirectory获取不同类型文件的保存路径 |
| callback | AsyncCallback&lt;[FileAsset](#fileasset)> | 是 | 异步获取媒体数据FileAsset之后的回调 |
**示例:** **示例:**
```ts ```ts
async function createAssetDemoCallback() { async function example() {
console.info('createAssetDemo') console.info('getPrivateAlbumDemo')
let mediaType = userfile_manager.MediaType.FILE; mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH, async (err, fetchResult) => {
let DIR_DOC = directoryType.DIR_DOCUMENTS; if (fetchResult != undefined) {
const path = await userFileMgr.getPublicDirectory(DIR_DOC); let trashAlbum = await fetchResult.getFirstObject();
userFileMgr.createAsset(mediaType, 'tesfFile.txt', path + 'myDirectory/', (err, fileAsset) => { console.info('first album.albumName = ' + trashAlbum.albumName);
if (err == undefined) {
console.info('createAsset successfully');
} else { } else {
console.info('createAsset failed, message = ', err); console.info('getPrivateAlbum failed. message = ', err);
} }
}) });
} }
``` ```
### createAsset ### getPrivateAlbum
createAsset(mediaType: MediaType, displayName: string, relativePath: string): Promise&lt;FileAsset>; getPrivateAlbum(type: PrivateAlbumType): Promise&lt;FetchResult&lt;PrivateAlbum&gt;&gt;;
创建文件资源,使用Promise方式返回结果。
此接口为系统接口 获取系统相册,使用Promise方式返回结果
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------- | ---- | ------------------------------------------------------------ | | -------- | ------------------------ | ---- | ------------------------- |
| mediaType | [MediaType](#mediatype) | 是 | 媒体类型 | | type | [PrivateAlbumType](#privatealbumtype) | 是 | 系统相册类型 |
| displayName | string | 是 | 展示文件名 |
| relativePath | string | 是 | 文件保存路径,可以通过getPublicDirectory获取不同类型文件的保存路径 |
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| --------------------- | ----------------- | | --------------------------- | -------------- |
| Promise&lt;[FileAsset](#fileasset)> | 媒体数据FileAsset | | Promise&lt;[FetchResult](#fetchresult)&lt;[PrivateAlbum](#privatealbum)&gt;&gt; | Promise 返回相册检索结果 |
**示例:** **示例:**
```ts ```ts
async function createAssetDemoPromise() { async function example() {
console.info('createAssetDemo') console.info('getPrivateAlbumDemo');
let mediaType = userfile_manager.MediaType.FILE;
let DIR_DOC = directoryType.DIR_DOCUMENTS;
const path = await userFileMgr.getPublicDirectory(DIR_DOC);
try { try {
let fileAsset = await userFileMgr.createAsset(mediaType, 'tesfFile.txt', path + 'myDirectory/') var fetchResult = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
console.info('createAsset successfully'); let trashAlbum = await fetchResult.getFirstObject();
console.info('first album.albumName = ' + trashAlbum.albumName);
} catch (err) { } catch (err) {
console.info('createAsset failed, message = ', err); console.info('getPrivateAlbum failed. message = ', err);
} }
} }
``` ```
### deleteAsset ### getAudioAssets
deleteAsset(uri: string, callback: AsyncCallback&lt;void>): void; getAudioAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;FileAsset&gt;&gt;): void;
删除文件资源,使用callback方式返回结果。
此接口为系统接口 获取音频文件,使用callback方式返回结果
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.READ_AUDIO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------- | ---- | ---------------------- | | -------- | ------------------------ | ---- | ------------------------- |
| uri | string | 是 | 文件URI | | options | [FetchOptions](#fetchoptions) | 是 | 检索选项 |
| callback | AsyncCallback&lt;[FileAsset](#fileasset)> | 是 | 异步删除文件之后的回调 | | callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是 | callback 返回相册检索结果 |
**示例:** **示例:**
```ts ```ts
async function deleteAssetDemoCallback() { async function example() {
console.info('deleteAssetDemo') console.info('getAudioAssets');
let fileKeyObj = userfile_manager.FileKey let predicates = new dataSharePredicates.DataSharePredicates();
let fileType = userfile_manager.MediaType.FILE let fetchOptions = {
let option = { fetchColumns: [],
selections: '', predicates: predicates
selectionArgs: [],
}; };
try {
const fetchFileResult = await userFileMgr.getFileAssets([fileType, ], option);
var asset = await fetchFileResult.getFirstObject();
} catch(err) {
console.info('fetch failed, message =', err)
}
if (asset == undefined) { mgr.getPhotoAssets(fetchOptions, async (err, fetchResult) => {
console.error('asset not exist') if (fetchResult != undefined) {
return console.info('fetchFileResult success');
let fileAsset = await fetchResult.getFirstObject();
if (fileAsset != undefined) {
console.info("fileAsset.displayName :" + fileAsset.displayName);
} }
userFileMgr.deleteAsset(asset.uri, (err) => {
if (err == undefined) {
console.info("deleteAsset successfully");
} else { } else {
console.info("deleteAsset failed with error:"+ err); console.info('fetchFileResult fail' + err);
} }
}); })
} }
``` ```
### deleteAsset ### getAudioAssets
deleteAsset(uri: string): Promise&lt;void>; getAudioAssets(options: FetchOptions): Promise&lt;FetchResult&lt;FileAsset&gt;&gt;;
创建文件资源,使用Promise方式返回结果。
此接口为系统接口 获取音频文件,使用callback方式返回结果
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.READ_AUDIO
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- | | -------- | ------------------------ | ---- | ------------------------- |
| uri | string | 是 | 文件URI | | options | [FetchOptions](#fetchoptions) | 是 | 检索选项 |
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| ---------------- | --------------------------------- | | --------------------------- | -------------- |
| Promise&lt;void> | Promise实例,用于获取异步返回结果 | | Promise&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | Promise 返回相册检索结果 |
**示例:** **示例:**
```ts ```ts
async function deleteAssetDemoPromise() { async function example() {
console.info('deleteAssetDemo') console.info('getAudioAssets');
let fileKeyObj = userfile_manager.FileKey let predicates = new dataSharePredicates.DataSharePredicates();
let fileType = userfile_manager.MediaType.FILE let fetchOptions = {
let option = { fetchColumns: [],
selections: '', predicates: predicates
selectionArgs: [],
}; };
try { try {
const fetchFileResult = await userFileMgr.getFileAssets([fileType, ], option); var fetchResult = await mgr.getPhotoAssets(fetchOptions)
var asset = await fetchFileResult.getFirstObject(); } catch (err) {
} catch(err) { console.info('getAudioAssets failed, message = ', err);
console.info('fetch failed, message =', err)
} }
if (asset == undefined) {
console.error('asset not exist') if (fetchResult != undefined) {
return console.info('fetchFileResult success');
let fileAsset = await fetchResult.getFirstObject();
if (fileAsset != undefined) {
console.info("fileAsset.displayName :" + fileAsset.displayName);
} }
try {
await userFileMgr.deleteAsset(asset.uri);
console.info("deleteAsset successfully");
} catch (err) {
console.info("deleteAsset failed with error:"+ err);
} }
} }
``` ```
### delete
### getAlbums delete(uri: string, callback: AsyncCallback&lt;void&gt;): void;
getAlbums(type: Array&lt;MediaType&gt;, options: MediaFetchOptions, callback: AsyncCallback<Array&lt;Album&gt;&gt;): void;
获取相册列表,使用callback 方式返回结果 删除媒体文件
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.READ_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------ | ---- | --------------------------- | | -------- | ------------------------- | ---- | ---------- |
| type | Array&lt;[MediaType](#mediatype)> | 是 | 相册媒体类型检索范围 | | uri | string | 是 | 媒体文件uri |
| options | [MediaFetchOptions](#mediafetchoptions) | 是 | 相册获取条件 | | callback | AsyncCallback&lt;void&gt; | 是 | 回调返回空 |
| callback | AsyncCallback&lt;Array&lt;[Album](#album)>&gt; | 是 | 异步获取Album列表之后的回调 |
**示例:** **示例**
```ts ```ts
async function getAlbumsDemoCallback() { async function example() {
console.info('getAlbumsDemo') console.info('deleteAssetDemo')
let AlbumNoArgsfetchOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: '', let fetchOptions = {
selectionArgs: [], fetchColumns: [],
predicates: predicates
}; };
userFileMgr.getAlbums([userfile_manager.MediaType.IMAGE], AlbumNoArgsfetchOp, (err, albumList) => { try {
if (albumList != undefined) { const fetchResult = await mgr.getPhotoAssets(fetchOptions);
const album = albumList[0]; var asset = await fetchResult.getFirstObject();
console.info('first album.albumName = ' + album.albumName); } catch (err) {
console.info('album.count = ' + albumList.length); console.info('fetch failed, message =', err)
}
if (asset == undefined) {
console.error('asset not exist')
return;
}
mgr.delete(asset.uri, (err) => {
if (err == undefined) {
console.info("delete successfully");
} else { } else {
console.info('getAlbum fail, message = ' + err); console.info("delete failed with error:" + err);
} }
}) });
} }
``` ```
### delete
### getAlbums delete(uri: string): Promise&lt;void&gt;;
getAlbums(type: Array&lt;MediaType>, options: MediaFetchOptions): Promise<Array&lt;Album>>; 删除媒体文件。
获取相册列表,使用 promise 方式返回结果。 **需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.READ_DOCUMENT
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------- | ---- | -------------------- | | -------- | ------------------------- | ---- | ---------- |
| type | Array&lt;[MediaType](#mediatype)> | 是 | 相册媒体类型检索范围 | | uri | string | 是 | 媒体文件uri |
| options | [MediaFetchOptions](#mediafetchoptions) | 是 | 相册获取条件 |
**返回值:** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| ------------------------ | -------------------------- | | --------------------------------------- | ----------------- |
| Promise<Array&lt;[Album](#album)>> | Promise实例,返回Album列表 | | Promise&lt;void&gt;| 回调返回空 |
**示例:** **示例**
```ts ```ts
async function getAlbumsDemoPromise() { async function example() {
console.info('getAlbumsDemo') console.info('deleteDemo')
let AlbumNoArgsfetchOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: '', let fetchOptions = {
selectionArgs: [], fetchColumns: [],
predicates: predicates
}; };
try { try {
let albumList = await userFileMgr.getAlbums([userfile_manager.MediaType.IMAGE], AlbumNoArgsfetchOp); const fetchResult = await mgr.getPhotoAssets(fetchOptions);
const album = albumList[0]; var asset = await fetchResult.getFirstObject();
console.info('first album.albumName = ' + album.albumName);
console.info('album.count = ' + albumList.length);
} catch (err) { } catch (err) {
console.info('getAlbum fail, message = ' + err); console.info('fetch failed, message =', err)
}
if (asset == undefined) {
console.error('asset not exist')
return;
}
try {
await mgr.delete(asset.uri);
console.info("delete successfully");
} catch (err) {
console.info("delete failed with error:" + err);
} }
} }
``` ```
### getPrivateAlbum ### on
getPrivateAlbum(type: VirtualAlbumType, callback: AsyncCallback<Array&lt;VirtualAlbum&gt;>): void
获取系统相册,使用 callback 方式返回系统相册的数组。 on(type: ChangeEvent, callback: Callback&lt;void&gt;): void
此接口为系统接口 打开文件管理库变更通知,使用callback方式返回异步结果
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.READ_DOCUMENTS
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ---------------------------------- | | -------- | -------------------- | ---- | ------------------------------------------------------------ |
| type | [VirtualAlbumType](#virtualalbumtype) | 是 | 系统相册类型 | | type | [ChangeEvent](#changeevent) | 是 | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange': &nbsp;视频文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
| callback | AsyncCallback<Array&lt;[VirtualAlbum](#virtualalbum)>> | 是 | 异步获取VirtualAlbum数组之后的回调 | | callback | Callback&lt;void&gt; | 是 | 回调返回空 |
**示例:** **示例:**
```ts ```ts
async function getPrivateAlbumDemoCallback() { async function example() {
console.info('getPrivateAlbumDemo') console.info('onDemo')
userFileMgr.getPrivateAlbum(userfile_manager.VirtualAlbumType.TYPE_TRASH, async (err, albumArray) => { userFileMgr.on('imageChange', () => {
if (err == undefined) { // image file had changed, do something
console.info('getPrivateAlbum ok');
try {
let fetchOpt = {
selections: '',
selectionArgs: [],
};
let trashAlbum = albumArray[0];
var fetchResult = await trashAlbum.getFileAssets([userfile_manager.MediaType.IMAGE], fetchOpt);
} catch (err) {
console.info('getFileAssets failed. message = ', err);
}
// Get file count in trash album
let count = fetchResult.getCount();
console.info('fetchResult count = ', count)
// Get fileAssets in trash album
let trashAsset = await fetchResult.getFirstObject();
// Get file trashed date
let isTrash = trashAsset.isTrash();
console.info('is trashed', isTrash)
} else {
console.info('getPrivateAlbum failed. message = ', err);
}
}); });
} }
``` ```
### getPrivateAlbum ### off
getPrivateAlbum(type: VirtualAlbumType): Promise<Array&lt;VirtualAlbum&gt;>
获取系统相册,使用 Promise 方式返回系统相册的数组。 off(type: ChangeEvent, callback?: Callback&lt;void&gt;): void
此接口为系统接口 关闭文件管理库变更通知,使用callback方式返回异步结果
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.READ_DOCUMENTS
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ---------------- | ---- | ------------ | | -------- | -------------------- | ---- | ------------------------------------------------------------ |
| type | [VirtualAlbumType](#virtualalbumtype) | 是 | 系统相册类型 | | type | [ChangeEvent](#changeevent) | 是 | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange': &nbsp;视频文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
| callback | Callback&lt;void&gt; | 否 | 回调返回空 |
**返回值:**
| 类型 | 说明 |
| ------------------------------- | --------------------------------- |
| Promise<Array&lt;[VirtualAlbum](#virtualalbum)>> | Promise实例,返回VirtualAlbum数组 |
**示例:** **示例:**
```ts ```ts
async function getPrivateAlbumDemoPromise() { async function example() {
console.info('getPrivateAlbumDemo'); console.info('offDemo')
try { userFileMgr.off('imageChange', () => {
var albumArray = await userFileMgr.getPrivateAlbum(userfile_manager.VirtualAlbumType.TYPE_TRASH); // stop listening success
} catch(err) { });
console.info('getPrivateAlbum failed. message = ', err);
}
try {
let fetchOpt = {
selections: '',
selectionArgs: [],
};
let trashAlbum = albumArray[0];
var fetchResult = await trashAlbum.getFileAssets([userfile_manager.MediaType.IMAGE], fetchOpt);
} catch (err) {
console.info('getFileAssets failed. message = ', err);
}
// Get file count in trash album
let count = fetchResult.getCount();
console.info('fetchResult count = ', count)
// Get fileAssets in trash album
let trashAsset = await fetchResult.getFirstObject();
// Get file trashed date
let isTrash = trashAsset.isTrash();
console.info('is trashed', isTrash)
} }
``` ```
### getActivePeers ### getActivePeers
getActivePeers(callback: AsyncCallback<Array&lt;PeerInfo>>): void; getActivePeers(callback: AsyncCallback&lt;Array&lt;PeerInfo&gt;&gt;): void;
获取在线对端设备的信息,使用callback方式返回异步结果。 获取在线对端设备的信息,使用callback方式返回异步结果。
此接口为系统接口。
**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore **系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------- | ---- | ------------ | | -------- | --------------------------------- | ---- | ------------ |
| callback | AsyncCallback<Array<[PeerInfo](#peerinfo)>> | 是 | 系统相册类型 | | callback | AsyncCallback&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | 是 | 返回在线设备列表 |
**示例:** **示例:**
```ts ```ts
async function getActivePeersDemoCallback() { async function example() {
console.info('getActivePeersDemo') console.info('getActivePeersDemo')
var devicesInfo = userFileMgr.getActivePeers((err, devicesInfo) => { mgr.getActivePeers((err, devicesInfo) => {
if (err == undefined) { if (devicesInfo != undefined) {
console.log('getActivePeers succeed.') console.log('getActivePeers succeed.')
for (let i = 0; i < devicesInfo.length; i++) { for (let i = 0; i < devicesInfo.length; i++) {
console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
...@@ -688,27 +704,25 @@ async function getActivePeersDemoCallback() { ...@@ -688,27 +704,25 @@ async function getActivePeersDemoCallback() {
### getActivePeers ### getActivePeers
getActivePeers(): Promise<Array&lt;PeerInfo>>; getActivePeers(): Promise&lt;Array&lt;PeerInfo&gt;&gt;;
获取在线对端设备的信息,使用promise方式返回异步结果。 获取在线对端设备的信息,使用promise方式返回异步结果。
此接口为系统接口。
**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore **系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------- | ----------------------------- | | --------------------------- | ----------------------------- |
| Promise<Array<[PeerInfo](#peerinfo)>> | Promise实例,返回在线设备列表 | | Promise&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | Promise实例,返回在线设备列表 |
**示例:** **示例:**
```ts ```ts
async function getActivePeersDemoPromise() { async function example() {
console.info('getActivePeersDemo') console.info('getActivePeersDemo')
try { try {
var devicesInfo = await userFileMgr.getActivePeers(); var devicesInfo = await mgr.getActivePeers();
} catch (err) { } catch (err) {
console.info('getActivePeers failed. message = ', err) console.info('getActivePeers failed. message = ', err)
} }
...@@ -725,27 +739,25 @@ async function getActivePeersDemoPromise() { ...@@ -725,27 +739,25 @@ async function getActivePeersDemoPromise() {
### getAllPeers ### getAllPeers
getAllPeers(callback: AsyncCallback<Array&lt;PeerInfo>>): void; getAllPeers(callback: AsyncCallback&lt;Array&lt;PeerInfo&gt;&gt;): void;
获取所有对端设备的信息,使用callback方式返回异步结果。 获取所有对端设备的信息,使用callback方式返回异步结果。
此接口为系统接口。
**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore **系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------- | ---- | ------------ | | -------- | --------------------------------- | ---- | ------------ |
| callback | AsyncCallback<Array&lt;[PeerInfo](#peerinfo)>> | 是 | 系统相册类型 | | callback | AsyncCallback&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | 是 | 返回在线设备列表 |
**示例:** **示例:**
```ts ```ts
async function getAllPeersDemoCallback() { async function example() {
console.info('getAllPeersDemo') console.info('getAllPeersDemo')
var devicesInfo = await userFileMgr.getAllPeers((err, devicesInfo) => { mgr.getAllPeers((err, devicesInfo) => {
if (err == undefined) { if (devicesInfo != undefined) {
console.log('getAllPeers succeed.') console.log('getAllPeers succeed.')
for (let i = 0; i < devicesInfo.length; i++) { for (let i = 0; i < devicesInfo.length; i++) {
console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId); console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
...@@ -759,27 +771,25 @@ async function getAllPeersDemoCallback() { ...@@ -759,27 +771,25 @@ async function getAllPeersDemoCallback() {
### getAllPeers ### getAllPeers
getAllPeers(): Promise<Array&lt;PeerInfo>>; getAllPeers(): Promise&lt;Array&lt;PeerInfo&gt;&gt;;
获取所有对端设备的信息,使用promise方式返回异步结果。 获取所有对端设备的信息,使用promise方式返回异步结果。
此接口为系统接口。
**系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore **系统能力**:SystemCapability.FileManagement.UserFileManager.DistributedCore
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------- | ----------------------------- | | --------------------------- | ----------------------------- |
| Promise<Array&lt;[PeerInfo](#peerinfo)>> | Promise实例,返回所有设备列表 | | Promise&lt;Array&lt;[PeerInfo](#peerinfo)&gt;&gt; | Promise实例,返回所有设备列表 |
**示例:** **示例:**
```ts ```ts
async function getAllPeersDemoPromise() { async function example() {
console.info('getAllPeersDemo') console.info('getAllPeersDemo')
try { try {
var devicesInfo = await userFileMgr.getAllPeers(); var devicesInfo = await mgr.getAllPeers();
} catch (err) { } catch (err) {
console.info('getAllPeers failed. message = ', err) console.info('getAllPeers failed. message = ', err)
} }
...@@ -812,9 +822,9 @@ release(callback: AsyncCallback&lt;void&gt;): void ...@@ -812,9 +822,9 @@ release(callback: AsyncCallback&lt;void&gt;): void
**示例:** **示例:**
```ts ```ts
async function releaseDemoCallback() { async function example() {
console.info('releaseDemo'); console.info('releaseDemo');
userFileMgr.release((err) => { mgr.release((err) => {
if (err != undefined) { if (err != undefined) {
console.info('release failed. message = ', err); console.info('release failed. message = ', err);
} else { } else {
...@@ -842,10 +852,10 @@ release(): Promise&lt;void&gt; ...@@ -842,10 +852,10 @@ release(): Promise&lt;void&gt;
**示例:** **示例:**
```ts ```ts
async function releaseDemoPromise() { async function example() {
console.info('releaseDemo'); console.info('releaseDemo');
try { try {
await userFileMgr.release(); await mgr.release();
console.info('release ok.'); console.info('release ok.');
} catch (err) { } catch (err) {
console.info('release failed. message = ', err); console.info('release failed. message = ', err);
...@@ -864,79 +874,77 @@ async function releaseDemoPromise() { ...@@ -864,79 +874,77 @@ async function releaseDemoPromise() {
| 名称 | 类型 | 可读 | 可写 | 说明 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ | | ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ |
| uri | string | 是 | 否 | 文件资源uri(如:dataability:///media/image/2) | | uri | string | 是 | 否 | 文件资源uri(如:dataability:///media/image/2) |
| mediaType | [MediaType](#mediatype) | 是 | 否 | 媒体类型 | | fileType | [FileType](#filetype) | 是 | 否 | 媒体文件类型 |
| displayName | string | 是 | 是 | 显示文件名,包含后缀名 | | displayName | string | 是 | 是 | 显示文件名,包含后缀名 |
### isDirectory ### get
isDirectory(callback: AsyncCallback&lt;boolean&gt;): void get(member: string): MemberType;
判断fileAsset是否为目录,使用callback方式返回异步结果。 获取FileAsset成员参数
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------- | ---- | ------------------- | | -------- | ------------------------- | ---- | ----- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 当前FileAsset是否是目录的回调 | | member | string | 是 | 成员参数名称例如:ImageVideoKey.URI |
**示例:** **示例:**
```ts
```js
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey console.info('fileAssetGetDemo')
let imageType = mediaLibrary.MediaType.IMAGE; try {
let getImageOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: fileKeyObj.MEDIA_TYPE + '= ?', let fetchOption = {
selectionArgs: [imageType.toString()], fetchColumns: [],
order: fileKeyObj.DATE_ADDED + " DESC", predicates: predicates
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); let fileAsset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); let title = userFileManager.ImageVideoKey.TITLE
asset.isDirectory((err, isDirectory) => { let fileAssetTitle = fileAsset.get(title.toString())
// do something console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
}); } catch (err) {
console.info('release failed. message = ', err);
}
} }
``` ```
### isDirectory ### set
isDirectory():Promise&lt;boolean&gt; set(member: string, value: string): void;
判断fileAsset是否为目录,使用Promise方式返回异步结果。 设置FileAsset成员参数
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**返回值:** **参数:**
| 类型 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ---------------------- | ---------------------------- | | -------- | ------------------------- | ---- | ----- |
| Promise&lt;boolean&gt; | Promise实例,返回当前FileAsset是否是目录 | | member | string | 是 | 成员参数名称例如:ImageVideoKey.URI |
| value | string | 是 | 设置成员参数名称,只能修改ImageVideoKey.TITLE的值 |
**示例:** **示例:**
```ts
```js
async function example() { async function example() {
let fileKeyObj = userfile_manager.FileKey console.info('fileAssetSetDemo')
let imageType = userfile_manager.MediaType.IMAGE; try {
let getImageOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: fileKeyObj.MEDIA_TYPE + '= ?', let fetchOption = {
selectionArgs: [imageType.toString()], fetchColumns: [],
order: fileKeyObj.DATE_ADDED + " DESC", predicates: predicates
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); let fileAsset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); let title = userFileManager.ImageVideoKey.TITLE
asset.isDirectory().then(function(isDirectory){ fileAsset.set(title.toString(), "newTitle")
console.info("isDirectory result:"+ isDirectory); } catch (err) {
}).catch(function(err){ console.info('release failed. message = ', err);
console.info("isDirectory failed with error:"+ err); }
});
} }
``` ```
...@@ -946,7 +954,7 @@ commitModify(callback: AsyncCallback&lt;void&gt;): void ...@@ -946,7 +954,7 @@ commitModify(callback: AsyncCallback&lt;void&gt;): void
修改文件的元数据,使用callback方式返回异步结果。 修改文件的元数据,使用callback方式返回异步结果。
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -958,22 +966,27 @@ commitModify(callback: AsyncCallback&lt;void&gt;): void ...@@ -958,22 +966,27 @@ commitModify(callback: AsyncCallback&lt;void&gt;): void
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey console.info('commitModifyDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); let fileAsset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); let title = userFileManager.ImageVideoKey.TITLE
asset.title = 'newtitle'; let fileAssetTitle = fileAsset.get(title.toString())
asset.commitModify(() => { console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
console.info('commitModify success'); fileAsset.set(title.toString(), "newTitle")
fileAsset.commitModify((err) => {
if (err == undefined) {
let newFileAssetTitle = fileAsset.get(title.toString())
console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
} else {
console.info('commitModify failed, message =', err);
}
}); });
} }
``` ```
...@@ -984,7 +997,7 @@ commitModify(): Promise&lt;void&gt; ...@@ -984,7 +997,7 @@ commitModify(): Promise&lt;void&gt;
修改文件的元数据,使用promise方式返回异步结果。 修改文件的元数据,使用promise方式返回异步结果。
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -996,21 +1009,27 @@ commitModify(): Promise&lt;void&gt; ...@@ -996,21 +1009,27 @@ commitModify(): Promise&lt;void&gt;
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey console.info('commitModifyDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); let fileAsset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); let title = userFileManager.ImageVideoKey.TITLE
asset.title = 'newtitle'; let fileAssetTitle = fileAsset.get(title.toString())
asset.commitModify(); console.info('fileAsset Get fileAssetTitle = ', fileAssetTitle);
fileAsset.set(title.toString(), "newTitle")
try {
await fileAsset.commitModify()
let newFileAssetTitle = fileAsset.get(title.toString())
console.info('fileAsset Get newFileAssetTitle = ', newFileAssetTitle);
} catch (err) {
console.info('release failed. message = ', err);
}
} }
``` ```
...@@ -1022,7 +1041,7 @@ open(mode: string, callback: AsyncCallback&lt;number&gt;): void ...@@ -1022,7 +1041,7 @@ open(mode: string, callback: AsyncCallback&lt;number&gt;): void
**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放 **注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.READ_DOCUMENT 或 ohos.permission.WRITE_MEDIA 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_MEDIA 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1036,18 +1055,16 @@ open(mode: string, callback: AsyncCallback&lt;number&gt;): void ...@@ -1036,18 +1055,16 @@ open(mode: string, callback: AsyncCallback&lt;number&gt;): void
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let mediaType = mediaLibrary.MediaType.IMAGE; console.info('openDemo')
let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; const fileAsset = await mgr.createPhotoAsset("image00003.jpg");
let userFileMgr = userfile_manager.getUserFileMgr(context); fileAsset.open('rw', (err, fd) => {
const path = await userFileMgr.getPublicDirectory(DIR_IMAGE); if (fd != undefined) {
const asset = await userFileMgr.createAsset(mediaType, "image00003.jpg", path); console.info('File fd' + fd);
asset.open('rw', (openError, fd) => { fileAsset.close(fd)
if(fd > 0){ } else {
asset.close(fd); console.info('File err' + err);
}else{
console.info('File Open Failed!' + openError);
} }
}); });
} }
...@@ -1061,7 +1078,7 @@ open(mode: string): Promise&lt;number&gt; ...@@ -1061,7 +1078,7 @@ open(mode: string): Promise&lt;number&gt;
**注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放 **注意**:当前写操作是互斥的操作,写操作完成后需要调用close进行释放
**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.READ_DOCUMENT 或 ohos.permission.WRITE_MEDIA 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 或 ohos.permission.WRITE_MEDIA 或 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1079,20 +1096,21 @@ open(mode: string): Promise&lt;number&gt; ...@@ -1079,20 +1096,21 @@ open(mode: string): Promise&lt;number&gt;
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let mediaType = mediaLibrary.MediaType.IMAGE; console.info('openDemo')
let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; try {
let userFileMgr = userfile_manager.getUserFileMgr(context); const fileAsset = await mgr.createPhotoAsset("image00003.jpg");
const path = await userFileMgr.getPublicDirectory(DIR_IMAGE); let fd = await fileAsset.open('rw')
const asset = await userFileMgr.createAsset(mediaType, "image00003.jpg", path); if (fd != undefined) {
asset.open('rw') console.info('File fd' + fd);
.then((fd) => { fileAsset.close(fd)
console.info('File fd!' + fd); } else {
}) console.info(' open File fail');
.catch((err) => { }
console.info('File err!' + err); } catch (err) {
}); console.info('open Demo err' + err);
}
} }
``` ```
...@@ -1113,33 +1131,29 @@ close(fd: number, callback: AsyncCallback&lt;void&gt;): void ...@@ -1113,33 +1131,29 @@ close(fd: number, callback: AsyncCallback&lt;void&gt;): void
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey console.info('closeDemo')
let imageType = mediaLibrary.MediaType.IMAGE; try {
let getImageOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: fileKeyObj.MEDIA_TYPE + '= ?', let fetchOption = {
selectionArgs: [imageType.toString()], fetchColumns: [],
order: fileKeyObj.DATE_ADDED + " DESC", predicates: predicates
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); const fileAsset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); let fd = await fileAsset.open('rw');
asset.open('rw').then((fd) => { console.info('file fd', fd);
console.info('File fd!' + fd); fileAsset.close(fd, (err) => {
asset.close(fd, (closeErr) => { if (err == undefined) {
if (closeErr != undefined) { console.info('asset close succeed.');
console.info('mediaLibraryTest : close : FAIL ' + closeErr);
console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
} else { } else {
console.info("=======asset.close success====>"); console.info('close failed, message = ' + err);
} }
}); });
}) } catch (err) {
.catch((err) => { console.info('close failed, message = ' + err);
console.info('File err!' + err); }
});
} }
``` ```
...@@ -1165,34 +1179,24 @@ close(fd: number): Promise&lt;void&gt; ...@@ -1165,34 +1179,24 @@ close(fd: number): Promise&lt;void&gt;
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey console.info('closeDemo')
let imageType = mediaLibrary.MediaType.IMAGE; try {
let getImageOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: fileKeyObj.MEDIA_TYPE + '= ?', let fetchOption = {
selectionArgs: [imageType.toString()], fetchColumns: [],
order: fileKeyObj.DATE_ADDED + " DESC", predicates: predicates
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); const asset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); let fd = await asset.open('rw');
asset.open('rw').then((fd) => { console.info('file fd', fd);
console.info('File fd!' + fd); await asset.close(fd)
asset.close(fd).then((closeErr) => { console.info('asset close succeed.');
if (closeErr != undefined) { } catch (err) {
console.info('mediaLibraryTest : close : FAIL ' + closeErr); console.info('close failed, message = ' + err);
console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
} else {
console.info("=======asset.close success====>");
} }
});
})
.catch((err) => {
console.info('File err!' + err);
});
} }
``` ```
...@@ -1202,7 +1206,7 @@ getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void ...@@ -1202,7 +1206,7 @@ getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void
获取文件的缩略图,使用callback方式返回异步结果。 获取文件的缩略图,使用callback方式返回异步结果。
**需要权限**:ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.READ_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1214,21 +1218,23 @@ getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void ...@@ -1214,21 +1218,23 @@ getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey console.info('getThumbnailDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); const asset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); console.info('asset displayName = ', asset.displayName)
asset.getThumbnail((err, pixelmap) => { asset.getThumbnail((err, pixelMap) => {
console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap); if (err == undefined) {
console.info('getThumbnail successful ' + pixelMap);
} else {
console.info('getThumbnail fail', err);
}
}); });
} }
``` ```
...@@ -1239,7 +1245,7 @@ getThumbnail(size: Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void ...@@ -1239,7 +1245,7 @@ getThumbnail(size: Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。 获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。
**需要权限**:ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.READ_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1247,402 +1253,159 @@ getThumbnail(size: Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void ...@@ -1247,402 +1253,159 @@ getThumbnail(size: Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------- | ---- | ---------------- | | -------- | ----------------------------------- | ---- | ---------------- |
| size | [Size](#size) | 是 | 缩略图尺寸 | | size | Size | 是 | 缩略图尺寸 |
| callback | AsyncCallback&lt;[image.PixelMap](#../apis/js-apis-image.md#pixelmap7)&gt; | 是 | 回调返回缩略图的PixelMap | | callback | AsyncCallback&lt;[image.PixelMap](#../apis/js-apis-image.md#pixelmap7)&gt; | 是 | 回调返回缩略图的PixelMap |
**示例:** **示例:**
```js ```ts
async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
};
let size = { width: 720, height: 720 };
let userFileMgr = userfile_manager.getUserFileMgr(context);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.getThumbnail(size, (err, pixelmap) => {
console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap);
});
}
```
### getThumbnail
getThumbnail(size?: Size): Promise&lt;image.PixelMap&gt;
获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。
**需要权限**:ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.READ_DOCUMENT
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---- | -------------- | ---- | ----- |
| size | [Size](#size) | 否 | 缩略图尺寸 |
**返回值:**
| 类型 | 说明 |
| ----------------------------- | --------------------- |
| Promise&lt;[image.PixelMap](#../apis/js-apis-image.md#pixelmap7)&gt; | Promise返回缩略图的PixelMap |
**示例:**
```js
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getThumbnailDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let size = { width: 720, height: 720 }; let size = { width: 720, height: 720 };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); const asset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); console.info('asset displayName = ', asset.displayName)
asset.getThumbnail(size) asset.getThumbnail(size, (err, pixelMap) => {
.then((pixelmap) => { if (err == undefined) {
console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap); console.info('getThumbnail successful ' + pixelMap);
}) } else {
.catch((err) => { console.info('getThumbnail fail', err);
console.info('mediaLibraryTest : getThumbnail fail'+ err);
});
}
```
### favorite
favorite(isFavorite: boolean, callback: AsyncCallback&lt;void&gt;): void
将文件设置为收藏文件,使用callback方式返回异步结果。
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------- | ---- | ---------------------------------- |
| isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调返回空 |
**示例:**
```js
async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
};
let userFileMgr = userfile_manager.getUserFileMgr(context);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.favorite(true,function(err){
// do something
});
}
```
### favorite
favorite(isFavorite: boolean): Promise&lt;void&gt;
将文件设置为收藏文件,使用promise方式返回异步结果。
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------- | ---- | ---------------------------------- |
| isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
**返回值:**
| 类型 | 说明 |
| ------------------- | ---------- |
| Promise&lt;void&gt; | Promise返回空 |
**示例:**
```js
async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
};
let userFileMgr = userfile_manager.getUserFileMgr(context);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.favorite(true).then(function() {
console.info("favorite successfully");
}).catch(function(err){
console.info("favorite failed with error:"+ err);
});
}
```
### isFavorite
isFavorite(callback: AsyncCallback&lt;boolean&gt;): void
判断该文件是否为收藏文件,使用callback方式返回异步结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------- | ---- | ----------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调表示是否为收藏文件 |
**示例:**
```js
async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
};
let userFileMgr = userfile_manager.getUserFileMgr(context);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.isFavorite((err, isFavorite) => {
if (isFavorite) {
console.info('FileAsset is favorite');
}else{
console.info('FileAsset is not favorite');
}
});
}
```
### isFavorite
isFavorite():Promise&lt;boolean&gt;
判断该文件是否为收藏文件,使用promise方式返回异步结果。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**返回值:**
| 类型 | 说明 |
| ---------------------- | ------------------ |
| Promise&lt;boolean&gt; | Promise回调表示是否是收藏文件 |
**示例:**
```js
async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
};
let userFileMgr = userfile_manager.getUserFileMgr(context);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.isFavorite().then(function(isFavorite){
console.info("isFavorite result:"+ isFavorite);
}).catch(function(err){
console.info("isFavorite failed with error:"+ err);
});
}
```
### trash
trash(isTrash: boolean, callback: AsyncCallback&lt;void&gt;): void
当文件被定位时,将文件放到垃圾文件夹,使用callback方式返回异步结果。
放入垃圾文件夹的文件不会被真正删除,可以通过isTrash = false参数恢复成正常文件。
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | --------- |
| isTrash | boolean | 是 | 是否设置为垃圾文件 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调返回空 |
**示例:**
```js
async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
};
let userFileMgr = userfile_manager.getUserFileMgr(context);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.trash(true, trashCallBack);
function trashCallBack(err, trash) {
console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK trash');
} }
});
} }
``` ```
### trash ### getThumbnail
trash(isTrash: boolean): Promise&lt;void&gt;
当文件被定位时,将文件放到垃圾文件夹,使用promise方式返回异步结果。 getThumbnail(size?: Size): Promise&lt;image.PixelMap&gt;
放入垃圾文件夹的文件不会被真正删除,可以通过isTrash = false参数恢复成正常文件 获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.READ_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ------- | ---- | --------- | | ---- | -------------- | ---- | ----- |
| isTrash | boolean | 是 | 是否设置为垃圾文件 | | size | Size | 否 | 缩略图尺寸 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| ------------------- | ---------- | | ----------------------------- | --------------------- |
| Promise&lt;void&gt; | Promise返回空 | | Promise&lt;[image.PixelMap](#../apis/js-apis-image.md#pixelmap7)&gt; | Promise返回缩略图的PixelMap |
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getThumbnailDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let size = { width: 720, height: 720 };
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const asset = await fetchFileResult.getFirstObject(); const asset = await fetchResult.getFirstObject();
asset.trash(true).then(function() { console.info('asset displayName = ', asset.displayName)
console.info("trash successfully"); asset.getThumbnail(size).then((pixelMap) => {
}).catch(function(err){ console.info('getThumbnail successful ' + pixelMap);
console.info("trash failed with error:"+ err); }).catch((err) => {
console.info('getThumbnail fail' + err);
}); });
} }
``` ```
### isTrash ### favorite
favorite(isFavorite: boolean, callback: AsyncCallback&lt;void&gt;): void
isTrash(callback: AsyncCallback&lt;boolean&gt;): void 将文件设置为收藏文件,使用callback方式返回异步结果。
当文件被定位,判断文件是否为垃圾文件,使用callback方式返回异步结果。 **需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------- | ---- | --------------- | | ---------- | ------------------------- | ---- | ---------------------------------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调返回表示文件是否为垃圾文件 | | isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调返回空 |
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('favoriteDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); const asset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); asset.favorite(true, (err) => {
asset.isTrash((err, isTrash) => { if (err == undefined) {
if (isTrash == undefined) { console.info("favorite successfully");
console.error('Failed to get trash state: ' + err); } else {
return; console.info("favorite failed with error:" + err);
} }
console.info('Get trash state success: ' + isTrash);
}); });
} }
``` ```
### isTrash ### favorite
favorite(isFavorite: boolean): Promise&lt;void&gt;
isTrash():Promise&lt;boolean&gt; 将文件设置为收藏文件,使用promise方式返回异步结果。
当文件被定位,判断文件是否为垃圾文件,使用promise方式返回异步结果。 **需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------- | ---- | ---------------------------------- |
| isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| ------------------- | -------------------- | | ------------------- | ---------- |
| Promise&lt;void&gt; | Promise回调表示文件是否为垃圾文件 | | Promise&lt;void&gt; | Promise返回空 |
**示例:** **示例:**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('favoriteDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
const fetchFileResult = await userFileMgr.getFileAssets(getImageOp); const asset = await fetchResult.getFirstObject();
const asset = await fetchFileResult.getFirstObject(); asset.favorite(true).then(function () {
asset.isTrash().then(function(isTrash){ console.info("favorite successfully");
console.info("isTrash result: " + isTrash); }).catch(function (err) {
}).catch(function(err){ console.info("favorite failed with error:" + err);
console.error("isTrash failed with error: " + err);
}); });
} }
``` ```
## FetchFileResult ## FetchResult
文件检索结果集。 文件检索结果集。
...@@ -1662,19 +1425,17 @@ getCount(): number ...@@ -1662,19 +1425,17 @@ getCount(): number
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getCountDemo')
let fileType = mediaLibrary.MediaType.FILE; let predicates = new dataSharePredicates.DataSharePredicates();
let getFileCountOneOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [fileType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getFileCountOneOp); const fetchCount = fetchResult.getCount();
const fetchCount = fetchFileResult.getCount(); console.info('fetchCount = ', fetchCount)
} }
``` ```
...@@ -1694,30 +1455,21 @@ isAfterLast(): boolean ...@@ -1694,30 +1455,21 @@ isAfterLast(): boolean
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; let predicates = new dataSharePredicates.DataSharePredicates();
let imageType = mediaLibrary.MediaType.IMAGE; let fetchOption = {
let getImageOp = { fetchColumns: [],
selections: fileKeyObj.MEDIA_TYPE + '= ?', predicates: predicates
selectionArgs: [imageType.toString()],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); const fetchCount = fetchResult.getCount();
const fetchCount = fetchFileResult.getCount(); console.info('count:' + fetchCount);
console.info('mediaLibraryTest : count:' + fetchCount); let fileAsset = await fetchResult.getLastObject();
let fileAsset = await fetchFileResult.getFirstObject(); if (!fetchResult.isAfterLast()) {
for (var i = 1; i < fetchCount; i++) { console.info('fileAsset isAfterLast displayName = ', fileAsset.displayName);
fileAsset = await fetchFileResult.getNextObject(); } else {
if(i == fetchCount - 1) { console.info('fileAsset not isAfterLast ');
console.info('mediaLibraryTest : isLast');
var result = fetchFileResult.isAfterLast();
console.info('mediaLibraryTest : isAfterLast:' + result);
console.info('mediaLibraryTest : isAfterLast end');
fetchFileResult.close();
}
} }
} }
``` ```
...@@ -1732,27 +1484,25 @@ close(): void ...@@ -1732,27 +1484,25 @@ close(): void
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('fetchResultCloseDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); await fetchResult.close();
fetchFileResult.close(); console.info('close succeed.')
} }
``` ```
### getFirstObject ### getFirstObject
getFirstObject(callback: AsyncCallback&lt;FileAsset&gt;): void getFirstObject(callback: AsyncCallback&lt;T&gt;): void
获取文件检索结果中的第一个文件资产。此方法使用回调返回FileAsset 获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1760,37 +1510,34 @@ getFirstObject(callback: AsyncCallback&lt;FileAsset&gt;): void ...@@ -1760,37 +1510,34 @@ getFirstObject(callback: AsyncCallback&lt;FileAsset&gt;): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------- | ---- | ------------------------------------------- | | -------- | --------------------------------------------- | ---- | ------------------------------------------- |
| callback | AsyncCallback&lt;[FileAsset](#fileasset)&gt; | 是 | 异步获取结果集中第一个FileAsset完成后的回调 | | callback | AsyncCallback&lt;T&gt; | 是 | 异步获取结果集中的第一个完成后的回调 |
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getFirstObjectDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); fetchResult.getFirstObject((err, fileAsset) => {
fetchFileResult.getFirstObject((err, fileAsset) => { if (fileAsset != undefined) {
if (err) { console.info('fileAsset displayName: ', fileAsset.displayName)
console.error('Failed '); } else {
return; console.info("fileAsset failed with err:" + err);
} }
console.log('fileAsset.displayName : ' + fileAsset.displayName); });
})
} }
``` ```
### getFirstObject ### getFirstObject
getFirstObject(): Promise&lt;FileAsset&gt; getFirstObject(): Promise&lt;T&gt;
获取文件检索结果中的第一个文件资产。此方法使用Promise方式返回FileAsset 获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1798,33 +1545,27 @@ getFirstObject(): Promise&lt;FileAsset&gt; ...@@ -1798,33 +1545,27 @@ getFirstObject(): Promise&lt;FileAsset&gt;
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------------------- | -------------------------- | | --------------------------------------- | -------------------------- |
| Promise&lt;[FileAsset](#fileasset)&gt; | Promise方式返回FileAsset。 | | Promise&lt;T&gt; | Promise方式返回。 |
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getFirstObjectDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); let fileAsset = await fetchResult.getFirstObject();
fetchFileResult.getFirstObject().then(function(fileAsset){ console.info('fileAsset displayName: ', fileAsset.displayName)
console.info("getFirstObject successfully:"+ JSON.stringify(fileAsset));
}).catch(function(err){
console.info("getFirstObject failed with error:"+ err);
});
} }
``` ```
### getNextObject ### getNextObject
getNextObject(callback: AsyncCallback&lt;FileAsset&gt;): void getNextObject(callback: AsyncCallback&lt;T&gt;): void
获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。 获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。
...@@ -1834,37 +1575,37 @@ async function example() { ...@@ -1834,37 +1575,37 @@ async function example() {
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | --------------------------------------------- | ---- | ----------------------------------------- | | --------- | --------------------------------------------- | ---- | ----------------------------------------- |
| callbacke | AsyncCallback&lt;[FileAsset](#fileasset)&gt; | 是 | 异步返回结果集中下一个FileAsset之后的回调 | | callbacke | AsyncCallback&lt;T&gt; | 是 | 异步返回结果集中下一个之后的回调 |
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getNextObjectDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); await fetchResult.getFirstObject();
fetchFileResult.getNextObject((err, fileAsset) => { if (fetchResult.isAfterLast()) {
if (err) { fetchResult.getNextObject((err, fileAsset) => {
console.error('Failed '); if (fileAsset != undefined) {
return; console.info('fileAsset displayName: ', fileAsset.displayName)
} else {
console.info("fileAsset failed with err:" + err);
}
});
} }
console.log('fileAsset.displayName : ' + fileAsset.displayName);
})
} }
``` ```
### getNextObject ### getNextObject
getNextObject(): Promise&lt;FileAsset&gt; getNextObject(): Promise&lt;T&gt;
获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回FileAsset 获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1872,33 +1613,32 @@ async function example() { ...@@ -1872,33 +1613,32 @@ async function example() {
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------------------- | ----------------- | | --------------------------------------- | ----------------- |
| Promise&lt;[FileAsset](#fileasset)&gt; | 返回FileAsset对象 | | Promise&lt;T&gt; | 返回结果集中下一个对象 |
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getNextObjectDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); await fetchResult.getFirstObject();
const fetchCount = fetchFileResult.getCount(); if (fetchResult.isAfterLast()) {
console.info('mediaLibraryTest : count:' + fetchCount); let fileAsset = await fetchResult.getNextObject();
let fileAsset = await fetchFileResult.getNextObject(); console.info('fileAsset displayName: ', fileAsset.displayName)
}
} }
``` ```
### getLastObject ### getLastObject
getLastObject(callback: AsyncCallback&lt;FileAsset&gt;): void getLastObject(callback: AsyncCallback&lt;T&gt;): void
获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回FileAsset 获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1906,37 +1646,34 @@ getLastObject(callback: AsyncCallback&lt;FileAsset&gt;): void ...@@ -1906,37 +1646,34 @@ getLastObject(callback: AsyncCallback&lt;FileAsset&gt;): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------- | ---- | --------------------------- | | -------- | --------------------------------------------- | ---- | --------------------------- |
| callback | AsyncCallback&lt;[FileAsset](#fileasset)&gt; | 是 | 异步返回FileAsset之后的回调 | | callback | AsyncCallback&lt;T&gt; | 是 | 异步返回结果集中最后一个的回调 |
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getLastObjectDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); fetchResult.getLastObject((err, fileAsset) => {
fetchFileResult.getLastObject((err, fileAsset) => { if (fileAsset != undefined) {
if (err) { console.info('fileAsset displayName: ', fileAsset.displayName)
console.error('Failed '); } else {
return; console.info("fileAsset failed with err:" + err);
} }
console.log('fileAsset.displayName : ' + fileAsset.displayName); });
})
} }
``` ```
### getLastObject ### getLastObject
getLastObject(): Promise&lt;FileAsset&gt; getLastObject(): Promise&lt;T&gt;
获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回FileAsset 获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1944,31 +1681,29 @@ getLastObject(): Promise&lt;FileAsset&gt; ...@@ -1944,31 +1681,29 @@ getLastObject(): Promise&lt;FileAsset&gt;
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------------------- | ----------------- | | --------------------------------------- | ----------------- |
| Promise&lt;[FileAsset](#fileasset)&gt; | 返回FileAsset对象 | | Promise&lt;T&gt; | 返回结果集中最后一个对象 |
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getLastObjectDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); let fileAsset = await fetchResult.getLastObject();
let lastObject = await fetchFileResult.getLastObject(); console.info('fileAsset displayName: ', fileAsset.displayName)
} }
``` ```
### getPositionObject ### getPositionObject
getPositionObject(index: number, callback: AsyncCallback&lt;FileAsset&gt;): void getPositionObject(index: number, callback: AsyncCallback&lt;T&gt;): void
获取文件检索结果中具有指定索引的文件资产。此方法使用回调来返回FileAsset 获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -1977,35 +1712,32 @@ getPositionObject(index: number, callback: AsyncCallback&lt;FileAsset&gt;): void ...@@ -1977,35 +1712,32 @@ getPositionObject(index: number, callback: AsyncCallback&lt;FileAsset&gt;): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ------------------ | | -------- | ---------------------------------------- | ---- | ------------------ |
| index | number | 是 | 要获取的文件的索引,从0开始 | | index | number | 是 | 要获取的文件的索引,从0开始 |
| callback | AsyncCallback&lt;[FileAsset](#fileasset)&gt; | 是 | 异步返回FileAsset之后的回调 | | callback | AsyncCallback&lt;T&gt; | 是 | 异步返回指定索引的文件资产的回调 |
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getPositionObjectDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); fetchResult.getPositionObject(0, (err, fileAsset) => {
fetchFileResult.getPositionObject(0, (err, fileAsset) => { if (fileAsset != undefined) {
if (err) { console.info('fileAsset displayName: ', fileAsset.displayName)
console.error('Failed '); } else {
return; console.info("fileAsset failed with err:" + err);
} }
console.log('fileAsset.displayName : ' + fileAsset.displayName); });
})
} }
``` ```
### getPositionObject ### getPositionObject
getPositionObject(index: number): Promise&lt;FileAsset&gt; getPositionObject(index: number): Promise&lt;T&gt;
获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。 获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。
...@@ -2021,27 +1753,21 @@ getPositionObject(index: number): Promise&lt;FileAsset&gt; ...@@ -2021,27 +1753,21 @@ getPositionObject(index: number): Promise&lt;FileAsset&gt;
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------------------- | ----------------- | | --------------------------------------- | ----------------- |
| Promise&lt;[FileAsset](#fileasset)&gt; | 返回FileAsset对象 | | Promise&lt;T&gt; | 返回指定索引的文件资产的对象 |
**示例** **示例**
```js ```ts
async function example() { async function example() {
let fileKeyObj = mediaLibrary.FileKey; console.info('getPositionObjectDemo')
let imageType = mediaLibrary.MediaType.IMAGE; let predicates = new dataSharePredicates.DataSharePredicates();
let getImageOp = { let fetchOption = {
selections: fileKeyObj.MEDIA_TYPE + '= ?', fetchColumns: [],
selectionArgs: [imageType.toString()], predicates: predicates
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let userFileMgr = userfile_manager.getUserFileMgr(context); let fetchResult = await mgr.getPhotoAssets(fetchOption);
let fetchFileResult = await userFileMgr.getFileAssets(getImageOp); let fileAsset = await fetchResult.getPositionObject(0);
fetchFileResult.getPositionObject(1) .then(function (fileAsset){ console.info('fileAsset displayName: ', fileAsset.displayName)
console.log('fileAsset.displayName : ' + fileAsset.displayName);
}).catch(function (err) {
console.info("getFileAssets failed with error:" + err);
});
} }
``` ```
...@@ -2059,16 +1785,98 @@ async function example() { ...@@ -2059,16 +1785,98 @@ async function example() {
| albumUri | string | 是 | 否 | 相册Uri | | albumUri | string | 是 | 否 | 相册Uri |
| dateModified | number | 是 | 否 | 修改日期 | | dateModified | number | 是 | 否 | 修改日期 |
| count | number | 是 | 否 | 相册中文件数量 | | count | number | 是 | 否 | 相册中文件数量 |
| relativePath | string | 是 | 否 | 相对路径 |
| coverUri | string | 是 | 否 | 封面文件Uri | coverUri | string | 是 | 否 | 封面文件Uri
### getPhotoAssets
getPhotoAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;FileAsset&gt;&gt;): void;
获取相册中的文件。该方法使用callback形式来返回文件
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 |
| callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是 | callback 返回图片和视频数据结果集|
**示例**
```ts
async function example() {
console.info('albumGetFileAssetsDemoCallback')
let predicates = new dataSharePredicates.DataSharePredicates();
let albumFetchOptions = {
predicates: predicates
};
let fetchOption = {
fetchColumns: [],
predicates: predicates
};
const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
const album = await albumList.getFirstObject();
album.getPhotoAssets(fetchOption, (err, albumFetchResult) => {
if (albumFetchResult != undefined) {
console.info("album getPhotoAssets successfully, getCount:" + albumFetchResult.getCount());
} else {
console.info("album getPhotoAssets failed with error:" + err);
}
});
}
```
### getPhotoAssets
getPhotoAssets(options: FetchOptions): Promise&lt;FetchResult&lt;FileAsset&gt;&gt;;
获取相册中的文件。该方法使用Promise来返回文件
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 |
| Promise | [FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt; | 是 | 图片和视频数据结果集 |
**示例**
```ts
async function example() {
console.info('albumGetFileAssetsDemoPromise')
let predicates = new dataSharePredicates.DataSharePredicates();
let albumFetchOptions = {
predicates: predicates
};
let fetchOption = {
fetchColumns: [],
predicates: predicates
};
const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
const album = await albumList.getFirstObject();
album.getPhotoAssets(fetchOption).then((albumFetchResult) => {
console.info("album getFileAssets successfully, getCount:" + albumFetchResult.getCount());
}).catch((err) => {
console.info("album getFileAssets failed with error:" + err);
});
}
```
### commitModify ### commitModify
commitModify(callback: AsyncCallback&lt;void&gt;): void; commitModify(callback: AsyncCallback&lt;void&gt;): void;
更新相册属性修改到数据库中。 更新相册属性修改到数据库中。
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -2081,26 +1889,20 @@ commitModify(callback: AsyncCallback&lt;void&gt;): void; ...@@ -2081,26 +1889,20 @@ commitModify(callback: AsyncCallback&lt;void&gt;): void;
**示例** **示例**
```ts ```ts
async function commitModifyDemoCallback() { async function example() {
console.info('commitModifyDemo') console.info('albumCommitModifyDemo')
let fileKeyObj = userfile_manager.FileKey let predicates = new dataSharePredicates.DataSharePredicates();
let imageType = userfile_manager.MediaType.IMAGE; let albumFetchOptions = {
let getImageOp = { predicates: predicates
selections: '',
selectionArgs: [],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let fetchFileResult = await userFileMgr.getFileAssets([imageType], getImageOp); const albumList = await mgr.getPhotoAlbums(albumFetchOptions);
let asset = await fetchFileResult.getFirstObject(); const album = await albumList.getFirstObject();
console.info('old displayName:', asset.displayName) album.albumName = 'hello';
asset.displayName = 'newDisplayName'; album.commitModify((err) => {
console.info('new displayName:', asset.displayName) if (err != undefined) {
asset.commitModify((err) => { console.info("commitModify failed with error:" + err);
if (err == undefined) {
console.info('commitModify succeed.')
} else { } else {
console.info('commitModify failed, message =', err); console.info("commitModify successfully");
} }
}); });
} }
...@@ -2112,7 +1914,7 @@ commitModify(): Promise&lt;void&gt;; ...@@ -2112,7 +1914,7 @@ commitModify(): Promise&lt;void&gt;;
更新相册属性修改到数据库中。 更新相册属性修改到数据库中。
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.WRITE_AUDIO 或 ohos.permission.WRITE_DOCUMENT **需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
...@@ -2125,265 +1927,323 @@ commitModify(): Promise&lt;void&gt;; ...@@ -2125,265 +1927,323 @@ commitModify(): Promise&lt;void&gt;;
**示例** **示例**
```ts ```ts
async function commitModifyDemoPromise() { async function example() {
console.info('commitModifyDemo') console.info('albumCommitModifyDemo')
let fileKeyObj = userfile_manager.FileKey let predicates = new dataSharePredicates.DataSharePredicates();
let imageType = userfile_manager.MediaType.IMAGE; let albumFetchOptions = {
let getImageOp = { predicates: predicates
selections: '',
selectionArgs: [],
order: fileKeyObj.DATE_ADDED + " DESC",
extendArgs: "",
}; };
let fetchFileResult = await userFileMgr.getFileAssets([imageType], getImageOp);
let asset = await fetchFileResult.getFirstObject();
console.info('old displayName:', asset.displayName)
asset.displayName = 'newDisplayName';
console.info('new displayName:', asset.displayName)
try { try {
await asset.commitModify(); var albumList = await mgr.getPhotoAlbums(albumFetchOptions);
console.info('commitModify succeed.')
} catch (err) { } catch (err) {
console.info('commitModify failed, message =', err); console.info('getPhotoAlbums failed. message = ', err);
} }
const album = await albumList.getFirstObject();
album.albumName = 'hello';
album.commitModify().then(() => {
console.info("commitModify successfully");
}).catch((err) => {
console.info("commitModify failed with error:" + err);
});
} }
``` ```
### getFileAssets ## PrivateAlbum
系统相册
### 属性
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------------ | ------ | ---- | ---- | ------- |
| albumName | string | 是 | 是 | 相册名称 |
| albumUri | string | 是 | 否 | 相册Uri |
| dateModified | number | 是 | 否 | 修改日期 |
| count | number | 是 | 否 | 相册中文件数量 |
| coverUri | string | 是 | 否 | 封面文件Uri
### getPhotoAssets
getFileAssets(type: Array&lt;MediaType&gt;, callback: AsyncCallback&lt;FetchFileResult&gt;): void; getPhotoAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;FileAsset&gt;&gt;): void;
按照检索条件获取相册中的文件。此方法使用Callback回调来返回文件结果集。 获取系统相册中的文件。该方法使用callback形式来返回文件
**需要权限**:ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.READ_DOCUMENT **需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------- | ---- | ----------------------------------- | | -------- | ------------------------- | ---- | ---------- |
| type | Array&lt;[MediaType](#mediatype)&gt; | 是 | 媒体类型检索选项。 | | options | [FetchOptions](#fetchoptions) | 是 | 检索选项 |
| callback | AsyncCallback<[FetchFileResult](#fetchfileresult)> | 是 | 异步返回FetchFileResult之后的回调。 | | callback | AsyncCallback&lt;[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;&gt; | 是 | callback返回图片和视频数据结果集 |
**示例** **示例**
```ts ```ts
async function albumGetFileAssetsDemoCallback() { async function example() {
console.info('albumGetFileAssetsDemoCallback2') console.info('privateAlbumGetFileAssetsDemoCallback')
let imageType = userfile_manager.MediaType.IMAGE; let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
let AlbumNoArgsfetchOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: '', let fetchOption = {
selectionArgs: [], fetchColumns: [],
predicates: predicates
}; };
const albumList = await userFileMgr.getAlbums([imageType], AlbumNoArgsfetchOp); const trashAlbum = await albumList.getFirstObject();
const album = albumList[0]; trashAlbum.getPhotoAssets(fetchOption, (err, fetchResult) => {
album.getFileAssets([imageType], (err, albumFetchFileResult) => { if (fetchResult != undefined) {
if (err == undefined) { let count = fetchResult.getCount();
console.info("getFileAssets successfully:"+ JSON.stringify(albumFetchFileResult)); console.info('fetchResult.count = ', count);
} else { } else {
console.info("getFileAssets failed with error:"+ err); console.info('getFileAssets failed, message = ', err);
} }
}); });
} }
``` ```
### getPhotoAssets
getPhotoAssets(options: FetchOptions): Promise&lt;FetchResult&lt;FileAsset&gt;&gt;;
获取系统相册中的文件。该方法使用Promise来返回文件
**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------- |
| options | [FetchOptions](#fetchoptions) | 是 | 检索选项 |
**返回值**
| 类型 | 说明 |
| --------------------------------------- | ----------------- |
| Promise:[FetchResult](#fetchresult)&lt;[FileAsset](#fileasset)&gt;| 图片和视频数据结果集 |
**示例**
### getFileAssets ```ts
async function example() {
console.info('privateAlbumGetFileAssetsDemoPromise')
let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
let predicates = new dataSharePredicates.DataSharePredicates();
let fetchOption = {
fetchColumns: [],
predicates: predicates
};
const trashAlbum = await albumList.getFirstObject();
let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
let count = fetchResult.getCount();
console.info('fetchResult.count = ', count);
}
```
### delete
getFileAssets(type: Array&lt;MediaType&gt;, options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult&gt;): void; delete(uri: string, callback: AsyncCallback&lt;void&gt;): void;
按照检索条件获取相册中的文件。此方法使用Callback回调来返回文件结果集。 删除系统相册中的文件
**需要权限**:ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.READ_DOCUMENT **需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------- | ---- | ----------------------------------- | | -------- | ------------------------- | ---- | ---------- |
| type | Array&lt;[MediaType](#mediatype)&gt; | 是 | 媒体类型检索选项。 | | uri | string | 是 | 相册uri |
| options | [MediaFetchOptions](#mediafetchoptions) | 是 | 媒体检索选项。 | | callback | AsyncCallback&lt;void&gt; | 是 | 回调返回空 |
| callback | AsyncCallback<[FetchFileResult](#fetchfileresult)> | 是 | 异步返回FetchFileResult之后的回调。 |
**示例** **示例**
```ts ```ts
async function albumGetFileAssetsDemoCallback() { async function example() {
console.info('albumGetFileAssetsDemoCallback') console.info('privateAlbumDeleteCallback');
let imageType = userfile_manager.MediaType.IMAGE; let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
let AlbumNoArgsfetchOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: '', let fetchOption = {
selectionArgs: [], fetchColumns: [],
predicates: predicates
}; };
let fileNoArgsfetchOp = { const trashAlbum = await albumList.getFirstObject();
selections: '', let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
selectionArgs: [], const fileAsset = await fetchResult.getFirstObject();
} let deleteFileUri = fileAsset.uri;
const albumList = await userFileMgr.getAlbums([imageType], AlbumNoArgsfetchOp); trashAlbum.delete(deleteFileUri, (err) => {
const album = albumList[0]; if (err != undefined) {
album.getFileAssets([imageType], fileNoArgsfetchOp, (err, albumFetchFileResult) => { console.info('trashAlbum.delete failed, message = ', err);
if (err == undefined) {
console.info("getFileAssets successfully:"+ JSON.stringify(albumFetchFileResult));
} else { } else {
console.info("getFileAssets failed with error:"+ err); console.info('trashAlbum.delete successfully');
} }
}); });
} }
``` ```
### delete
### getFileAssets delete(uri: string): Promise&lt;void&gt;;
getFileAssets(type: Array&lt;MediaType&gt;, options?: MediaFetchOptions): Promise&lt;FetchFileResult&gt;;
按照检索条件获取相册中的文件。此方法使用异步Promise来返回文件结果集。 删除系统相册中的文件
**需要权限**:ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.READ_DOCUMENT
**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.WRITE_IMAGEVIDEO 或 ohos.permission.READ_AUDIO 和 ohos.permission.WRITE_AUDIO
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------------- | ---- | -------------- | | -------- | ------------------------- | ---- | ---------- |
| type | Array&lt;[MediaType](#mediatype)&gt; | 是 | 媒体类型检索选项。 | | uri | string | 是 | 相册uri |
|options | [MediaFetchOptions](#mediafetchoptions) | 否 | 媒体检索选项。 |
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------------------------- | ------------------------- | | --------------------------------------- | ----------------- |
| Promise<[FetchFileResult](#fetchfileresult)> | 返回FetchFileResult对象。 | | Promise&lt;void&gt;| 回调返回空 |
**示例** **示例**
```ts ```ts
async function albumGetFileAssetsDemoPromise() { async function example() {
console.info('albumGetFileAssetsDemoPromise') console.info('privateAlbumDeleteDemoPromise')
let imageType = userfile_manager.MediaType.IMAGE; let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
let AlbumNoArgsfetchOp = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: '', let fetchOption = {
selectionArgs: [], fetchColumns: [],
predicates: predicates
}; };
let fileNoArgsfetchOp = { const trashAlbum = await albumList.getFirstObject();
selections: '', let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
selectionArgs: [], const fileAsset = await fetchResult.getFirstObject();
} let deleteFileUri = fileAsset.uri;
const albumList = await userFileMgr.getAlbums([imageType], AlbumNoArgsfetchOp); trashAlbum.delete(deleteFileUri).then(() => {
const album = albumList[0]; console.info('trashAlbum.delete successfully');
album.getFileAssets([imageType], fileNoArgsfetchOp).then(function(albumFetchFileResult){ }).catch((err) => {
console.info("getFileAssets successfully:"+ JSON.stringify(albumFetchFileResult)); console.info('trashAlbum.delete failed, message = ', err);
}).catch(function(err){
console.info("getFileAssets failed with error:"+ err);
}); });
} }
``` ```
## VirtualAlbum
虚拟相册
### getFileAssets
getFileAssets(type: Array&lt;MediaType&gt;, options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult&gt;): void;
按照检索条件获取虚拟相册中的文件。此方法使用Callback回调来返回文件结果集。 ### recover
此接口为系统接口。 recover(uri: string, callback: AsyncCallback&lt;void&gt;): void;
**需要权限**:ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.READ_DOCUMENTS 恢复系统相册中的文件
> 说明: **需要权限**:ohos.permission.WRITE_IMAGEVIDEO
> 本接口所需申请的分类的权限APL等级为system_basic。APL等级为normal的应用需要通过ACL证书方式申请,申请方式请参考[ACL说明](../../security/accesstoken-overview.md#访问控制列表acl说明)
>
> 建议通过options参数显式地指定要访问的文件类型。若无法判断文件类型,则会根据应用实际申请的权限返回对应的文件资源结果集。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------- | ---- | ----------------------------------- | | -------- | ------------------------- | ---- | ---------- |
| type | Array&lt;[MediaType](#mediatype)&gt; | 是 | 媒体类型检索选项。 | | uri | string | 是 | 相册uri |
| options | [MediaFetchOptions](#mediafetchoptions) | 是 | 媒体检索选项。 | | callback | AsyncCallback&lt;void&gt; | 是 | 回调返回空 |
| callback | AsyncCallback<[FetchFileResult](#fetchfileresult)> | 是 | 异步返回FetchFileResult之后的回调。 |
**示例** **示例**
```ts ```ts
async function virtualAlbumGetFileAssetsDemoCallback() { async function example() {
console.info('virtualAlbumGetFileAssetsDemoCallback') console.info('privateAlbumRecoverDemoCallback');
try { let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
var albumArray = await userFileMgr.getPrivateAlbum(userfile_manager.VirtualAlbumType.TYPE_TRASH); let predicates = new dataSharePredicates.DataSharePredicates();
} catch (err) { let fetchOption = {
console.info('getPrivateAlbum failed, message = ', err); fetchColumns: [],
} predicates: predicates
let fetchOpt = {
selections: '',
selectionArgs: [],
}; };
let trashAlbum = albumArray[0]; const trashAlbum = await albumList.getFirstObject();
let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
trashAlbum.getFileAssets([userfile_manager.MediaType.IMAGE], fetchOpt, (err, fetchResult) => { const fileAsset = await fetchResult.getFirstObject();
if (err == undefined) { let recoverFileUri = fileAsset.uri;
let count = fetchResult.getCount(); trashAlbum.recover(recoverFileUri, (err) => {
console.info('fetchResult.count = ', count); if (err != undefined) {
console.info('trashAlbum.recover failed, message = ', err);
} else { } else {
console.info('getFileAssets failed, message = ', err); console.info('trashAlbum.recover successfully');
} }
}); });
} }
``` ```
### recover
### getFileAssets recover(uri: string): Promise&lt;void&gt;;
getFileAssets(type: Array&lt;MediaType&gt;, options: MediaFetchOptions): Promise&lt;FetchFileResult&gt;;
按照检索条件获取虚拟相中的文件。此方法使用异步Promise来返回文件结果集。
此接口为系统接口。 恢复系统相册中的文件
**需要权限**:ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.READ_DOCUMENTS **需要权限**:ohos.permission.WRITE_IMAGEVIDEO
> 说明:
> 本接口所需申请的分类的权限APL等级为system_basic。APL等级为normal的应用需要通过ACL证书方式申请,申请方式请参考[ACL说明](../../security/accesstoken-overview.md#访问控制列表acl说明)
>
> 建议通过options参数显式地指定要访问的文件类型。若无法判断文件类型,则会根据应用实际申请的权限返回对应的文件资源结果集。
**系统能力**:SystemCapability.FileManagement.UserFileManager.Core **系统能力**:SystemCapability.FileManagement.UserFileManager.Core
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------------- | ---- | -------------- | | -------- | ------------------------- | ---- | ---------- |
| type | Array&lt;[MediaType](#mediatype)&gt; | 是 | 媒体类型检索选项。 | | uri | string | 是 | 相册uri |
|options | [MediaFetchOptions](#mediafetchoptions) | 否 | 媒体检索选项。 |
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| --------------------------------------------- | ------------------------- | | --------------------------------------- | ----------------- |
| Promise<[FetchFileResult](#fetchfileresult)> | 返回FetchFileResult对象。 | | Promise&lt;void&gt;| 回调返回空 |
**示例** **示例**
```ts ```ts
async function virtualAlbumGetFileAssetsDemoPromise() { async function example() {
console.info('virtualAlbumGetFileAssetsDemoPromise') console.info('privateAlbumRecoverDemoPromise')
let albumArray = await userFileMgr.getPrivateAlbum(userfile_manager.VirtualAlbumType.TYPE_TRASH); let albumList = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH);
let fetchOpt = { let predicates = new dataSharePredicates.DataSharePredicates();
selections: '', let fetchOption = {
selectionArgs: [], fetchColumns: [],
predicates: predicates
}; };
let trashAlbum = albumArray[0]; const trashAlbum = await albumList.getFirstObject();
let fetchResult = await trashAlbum.getPhotoAssets(fetchOption);
let fetchResult = await trashAlbum.getFileAssets([userfile_manager.MediaType.IMAGE], fetchOpt); const fileAsset = await fetchResult.getFirstObject();
let count = fetchResult.getCount(); let recoverFileUri = fileAsset.uri;
console.info('fetchResult.count = ', count); trashAlbum.recover(recoverFileUri).then(() => {
console.info('trashAlbum.recover successfully');
}).catch((err) => {
console.info('trashAlbum.recover failed, message = ', err);
});
} }
``` ```
## MemberType
成员类型。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.DistributedCore
| 名称 | 类型 |
| ----- | ---- |
| number | number |
| string | string |
| boolean | boolean |
## ChangeEvent
变更监听的媒体文件类型。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.DistributedCore
| 名称 | 说明 |
| ----- | ---- |
| deviceChange | 设备 |
| albumChange | 相册 |
| imageChange | 图片 |
| audioChange | 音频 |
| videoChange | 视频 |
| remoteFileChange | 远程文件 |
## PeerInfo ## PeerInfo
注册设备的信息。 注册设备的信息。
此接口为系统接口。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.DistributedCore **系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.DistributedCore
...@@ -2393,33 +2253,31 @@ async function virtualAlbumGetFileAssetsDemoPromise() { ...@@ -2393,33 +2253,31 @@ async function virtualAlbumGetFileAssetsDemoPromise() {
| networkId | string | 是 | 否 | 注册设备的网络ID | | networkId | string | 是 | 否 | 注册设备的网络ID |
| isOnline | boolean | 是 | 否 | 是否在线 | | isOnline | boolean | 是 | 否 | 是否在线 |
## MediaType
枚举,媒体类型。 ## FileType
枚举,媒体文件类型。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core **系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
| 名称 | 说明 | | 名称 | 说明 |
| ----- | ---- | | ----- | ---- |
| FILE | 文件 |
| IMAGE | 图片 | | IMAGE | 图片 |
| VIDEO | 视频 | | VIDEO | 视频 |
| AUDIO | 音频 | | AUDIO | 音频 |
## FileKey ## PrivateAlbumType
枚举,文件关键信息 枚举,系统相册类型
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core **系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
| 名称 | 默认值 | 说明 | | 名称 | 说明 |
| ------------- | ------------------- | ---------------------------------------------------------- | | ----- | ---- |
| URI | uri | 文件uri | | TYPE_FAVORITE | 收藏夹相册 |
| RELATIVE_PATH | relative_path | 相对公共目录路径 | | TYPE_TRASH | 回收站相册 |
| DISPLAY_NAME | display_name | 显示名字 |
| DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) |
| DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) |
| TITLE | title | 文件标题 |
## AudioKey ## AudioKey
...@@ -2430,7 +2288,6 @@ async function virtualAlbumGetFileAssetsDemoPromise() { ...@@ -2430,7 +2288,6 @@ async function virtualAlbumGetFileAssetsDemoPromise() {
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| ------------- | ------------------- | ---------------------------------------------------------- | | ------------- | ------------------- | ---------------------------------------------------------- |
| URI | uri | 文件uri | | URI | uri | 文件uri |
| RELATIVE_PATH | relative_path | 相对公共目录路径 |
| DISPLAY_NAME | display_name | 显示名字 | | DISPLAY_NAME | display_name | 显示名字 |
| DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) | | DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) |
| DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) | | DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) |
...@@ -2438,6 +2295,7 @@ async function virtualAlbumGetFileAssetsDemoPromise() { ...@@ -2438,6 +2295,7 @@ async function virtualAlbumGetFileAssetsDemoPromise() {
| ARTIST | artist | 作者 | | ARTIST | artist | 作者 |
| AUDIOALBUM | audio_album | 专辑 | | AUDIOALBUM | audio_album | 专辑 |
| DURATION | duration | 持续时间(单位:毫秒) | | DURATION | duration | 持续时间(单位:毫秒) |
| FAVORITE | favorite | 收藏 |
## ImageVideoKey ## ImageVideoKey
...@@ -2448,14 +2306,17 @@ async function virtualAlbumGetFileAssetsDemoPromise() { ...@@ -2448,14 +2306,17 @@ async function virtualAlbumGetFileAssetsDemoPromise() {
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| ------------- | ------------------- | ---------------------------------------------------------- | | ------------- | ------------------- | ---------------------------------------------------------- |
| URI | uri | 文件uri | | URI | uri | 文件uri |
| RELATIVE_PATH | relative_path | 相对公共目录路径 | | FILE_TYPE | file_type | 媒体文件类型 |
| DISPLAY_NAME | display_name | 显示名字 | | DISPLAY_NAME | display_name | 显示名字 |
| DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) | | DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) |
| DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) | | DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) |
| TITLE | title | 文件标题 |
| DURATION | duration | 持续时间(单位:毫秒) | | DURATION | duration | 持续时间(单位:毫秒) |
| WIDTH | width | 图片宽度(单位:像素) | | WIDTH | width | 图片宽度(单位:像素) |
| HEIGHT | height | 图片高度(单位:像素) | | HEIGHT | height | 图片高度(单位:像素) |
| DATE_TAKEN | date_taken | 拍摄日期(文件拍照时间到1970年1月1日的秒数值) | | DATE_TAKEN | date_taken | 拍摄日期(文件拍照时间到1970年1月1日的秒数值) |
| ORIENTATION | orientation | 图片文件的方向 |
| FAVORITE | favorite | 收藏 |
## AlbumKey ## AlbumKey
...@@ -2466,56 +2327,30 @@ async function virtualAlbumGetFileAssetsDemoPromise() { ...@@ -2466,56 +2327,30 @@ async function virtualAlbumGetFileAssetsDemoPromise() {
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| ------------- | ------------------- | ---------------------------------------------------------- | | ------------- | ------------------- | ---------------------------------------------------------- |
| URI | uri | 相册uri | | URI | uri | 相册uri |
| RELATIVE_PATH | relative_path | 相对公共目录路径 | | FILE_TYPE | file_type | 媒体文件类型 |
| DISPLAY_NAME | display_name | 显示名字 | | ALBUM_NAME | album_name | 相册名字 |
| DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) | | DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) |
| DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) | | DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) |
## DirectoryType
枚举,目录类型。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
| 名称 | 说明 |
| ------------- | ------------------ |
| DIR_CAMERA | 表示Camera文件路径 |
| DIR_VIDEO | 表示视频路径 |
| DIR_IMAGE | 表示图片路径 |
| DIR_AUDIO | 表示音频路径 |
| DIR_DOCUMENTS | 表示文档路径 |
| DIR_DOWNLOAD | 表示下载路径 |
## MediaFetchOptions ## FetchOptions
检索条件。 检索条件。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core **系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
| 名称 | 类型 | 可读 | 可写 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ----------------------- | ------------------- | ---- | ---- | ---- | ------------------------------------------------------------ | | ---------------------- | ------------------- | ---- |------------------------------------------------ |
| selections | string | 是 | 是 | 是 | 检索条件,使用[FileKey](#filekey)中的枚举值作为检索条件的列名。示例:<br />selections: mediaLibrary.FileKey.MEDIA_TYPE + '= ? OR' +mediaLibrary.FileKey.MEDIA_TYPE + '= ?‘, | | fetchColumns | Array&lt;string&gt; | 是 | 检索条件,指定列名查询,如果该参数为空时默认查询uri、name、fileType。示例:<br />fetchColumns: "uri"|
| selectionArgs | Array&lt;string&gt; | 是 | 是 | 是 | 检索条件的值,对应selections中检索条件列的值。<br />示例:<br />selectionArgs: [mediaLibrary.MediaType.IMAGE.toString(), mediaLibrary.MediaType.VIDEO.toString()], | | predicates | [dataSharePredicates.DataSharePredicates](#../js-apis-data-dataSharePredicates.md) | 是 | 谓词查询,显示过滤条件 |
## Size
图片尺寸。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------ | ------ | ---- | ---- | -------- |
| width | number | 是 | 是 | 宽(单位:像素) |
| height | number | 是 | 是 | 高(单位:像素) |
## VirtualAlbumType ## AlbumFetchOptions
枚举,系统相册或虚拟相册类型
以下接口均为系统接口 相册检索条件
**系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core **系统能力:** 以下各项对应的系统能力均为SystemCapability.FileManagement.UserFileManager.Core
| 名称 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ------------- | ------------------ | | ---------------------- | ------------------- | ---- |------------------------------------------------ |
| TYPE_FAVORITE | 系统相册:收藏夹相册<br/>该接口为系统接口。 | | predicates | [dataSharePredicates.DataSharePredicates](#../js-apis-data-dataSharePredicates.md) | 是 | 谓词查询,显示过滤条件 |
| TYPE_TRASH | 系统相册:回收站相册<br/>该接口为系统接口。 |
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册