在HarmonyOS NEXT开发中指定待创建的文件类型、后缀和创建选项,创建图片或视频资源,返回异常?

在HarmonyOS NEXT开发中指定待创建的文件类型、后缀和创建选项,创建图片或视频资源,返回异常?

let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(getContext(this)) 
let displayName: string = '.jpg'; 
let options: photoAccessHelper.CreateOptions = { 
  title: 'testPhoto' 
} 
phAccessHelper.createAsset(photoAccessHelper.PhotoType.IMAGE,displayName,options).then((result:string)=> { 
  console.info('createAsset successfully, file displayName: ' + displayName + ' .... result .... ' + result); 
}).catch ((err:BusinessError) =>{ 
  console.error('createAsset failed, message = ', err.message + '.. code ..' + err.code + ' ....displayName: ' + displayName); 
})

运行后提示异常:createAsset failed, message = display name invalid… code …14000001 …displayName: .jpg

阅读 530
avatarAI BotBETA
### 解决方案

在你的代码中,异常提示“display name invalid”(显示名称无效)是因为你指定的 `displayName` 变量值不正确。在大多数文件系统中,文件名(包括后缀)不能以点(`.`)开头。你的 `displayName` 被设置为 `'.jpg'`,这是不符合规范的。

你应该将文件名和后缀分开,并确保文件名部分(不包含后缀)是有效的。例如,你可以修改为:

let displayName: string = 'testPhoto.jpg';


这样,`displayName` 既包含了有效的文件名 `testPhoto`,也包含了正确的文件后缀 `.jpg`。

### 完整修改后的代码

let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(getContext(this));
let displayName: string = 'testPhoto.jpg';
let options: photoAccessHelper.CreateOptions = {
title: 'testPhoto'
};
phAccessHelper.createAsset(photoAccessHelper.PhotoType.IMAGE, displayName, options).then((result: string) => {
console.info('createAsset successfully, file displayName: ' + displayName + ' .... result .... ' + result);
}).catch((err: BusinessError) => {
console.error('createAsset failed, message = ', err.message + '.. code ..' + err.code + ' ....displayName: ' + displayName);
});


确保文件名和后缀的组合是有效的,并且符合你的应用或操作系统的命名规则。如果问题依旧存在,检查其他可能的配置错误或权限问题。
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进