HarmonyOS 鸿蒙Next中删除用户公共目录的图片
HarmonyOS 鸿蒙Next中删除用户公共目录的图片 如题,删除用户公共目录的图片有什么方法吗?有示例吗?
3 回复
【解决方案】
申请READ_IMAGEVIDEO权限后使用Picker选择器获取到文件。应用拉起系统Picker组件(文件选择器、照片选择器、联系人选择器等),由用户在Picker上选择对应的文件、照片资源,应用即可获取到Picker的返回结果。
let uris: Array<string> = [];
const photoViewPicker = new photoAccessHelper.PhotoViewPicker();
photoViewPicker.select(photoSelectOptions).then((photoSelectResult: photoAccessHelper.PhotoSelectResult) => {
uris = photoSelectResult.photoUris;
console.info(`photoViewPicker.select to file succeed and uris are:` + uris);
}).catch((err: BusinessError) => {
console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
})
创建文件选择器DocumentViewPicker实例。调用select()接口拉起FilePicker应用界面进行文件选择。
let uris: string[] = [];
// 请在组件内获取context,确保this.getUIContext().getHostContext()返回结果为UIAbilityContext
let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
// 创建文件选择器实例
const documentViewPicker = new picker.DocumentViewPicker(context);
documentViewPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {
// 文件选择成功后,返回被选中文档的URI结果集。
uris = documentSelectResult;
console.info(`documentViewPicker.select to file succeed and uris are:` + uris);
}).catch((err: BusinessError) => {
console.error(`Invoke documentViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
})
将URI传入fileManagerService.deleteToTrash。
async function deleteFile() {
let targetUri: string = "file://docs/storage/Users/currentUser/Download/1.txt";
try {
let trashUri: string = await fileManagerService.deleteToTrash(targetUri);
console.info(`trashUri: ` + trashUri);
} catch (err) {
let error: BusinessError = err as BusinessError;
console.error(`delete failed, errCode:` + error.code + `, errMessage:` + error.message);
}
}
更多关于HarmonyOS 鸿蒙Next中删除用户公共目录的图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,删除用户公共目录的图片需使用鸿蒙的媒体库管理API。通过photoAccessHelper模块的getAssets接口获取图片资源,调用delete方法执行删除操作。删除前需申请ohos.permission.READ_IMAGEVIDEO和ohos.permission.WRITE_IMAGEVIDEO权限。具体实现涉及使用PhotoAsset对象定位目标文件并执行删除。


