HarmonyOS 鸿蒙Next中怎么删除图片
HarmonyOS 鸿蒙Next中怎么删除图片
我在保存图片之前,先进行删除了同样路径名称的图片fs.unlinkSync(path)
,但是好像没生效,导致保存了好多张一模一样的图片,怎么办
static pixelMapToFile(pixelMap: image.PixelMap | undefined, path: string,
isSaveGallery?: boolean, context?: Context): Promise<void> {
const imagePacker = image.createImagePacker();
fs.unlinkSync(path); //先删除
let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let packOpts : image.PackingOption = { format: 'image/jpeg', quality: 98 };
return imagePacker.packToFile(pixelMap, file.fd, packOpts).then(async () => {
fs.closeSync(file.fd);
if (isSaveGallery === true) {
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest =
photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(context, path);
await phAccessHelper.applyChanges(assetChangeRequest);
}
AppUtils.log('保存图片成功:' + path)
}).catch((error: BusinessError) => {
AppUtils.error('保存图片failed, error: ' + JSON.stringify(error));
});
}
更多关于HarmonyOS 鸿蒙Next中怎么删除图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
在HarmonyOS Next中删除图片有两种方法:
-
通过图库删除: 打开图库应用,长按选中要删除的图片,点击底部"删除"按钮确认即可。
-
通过文件管理删除: 打开文件管理,进入图片所在目录,长按选中文件,点击"删除"按钮。
删除操作会将图片移入回收站,30天后自动永久删除。如需立即永久删除,需在删除后进入回收站二次删除。
更多关于HarmonyOS 鸿蒙Next中怎么删除图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,您遇到的问题可能是由于文件删除操作未正确处理导致的。以下是解决方案:
- 检查文件是否存在再删除:
if (fs.accessSync(path)) {
fs.unlinkSync(path);
}
- 使用try-catch处理删除异常:
try {
fs.unlinkSync(path);
} catch (err) {
// 文件不存在或其他错误
}
- 确保文件路径正确:
- 使用绝对路径而非相对路径
- 检查路径字符串是否正确转义
- 文件操作时序问题建议: 在删除后添加短暂延迟:
fs.unlinkSync(path);
await new Promise(resolve => setTimeout(resolve, 100)); // 100ms延迟
- 文件句柄管理: 确保在操作完成后关闭所有文件句柄,避免资源占用导致操作失败。
如果问题仍然存在,建议检查文件系统权限是否配置正确,并确认目标路径是否可写。