HarmonyOS 鸿蒙Next 使用拉起弹窗保存图片或视频到相册后文件创建时间不对导致无法展示在最上方 如何修改文件创建时间为当前保存时间

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用拉起弹窗保存图片或视频到相册后文件创建时间不对导致无法展示在最上方 如何修改文件创建时间为当前保存时间 使用拉起弹窗的方式将沙箱中的图片或者视频保存到相册,保存成功之后文件的创建时间不对,导致在相册中无法展示到最上面,应该如何修改文件的创建时间为当前保存时间呢

5 回复

你是用的showAssetsCreationDialog这个api吗?能麻烦提供下简单的demo吗?

更多关于HarmonyOS 鸿蒙Next 使用拉起弹窗保存图片或视频到相册后文件创建时间不对导致无法展示在最上方 如何修改文件创建时间为当前保存时间的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


看在架应用小黑盒也存在一样的问题
老帖子里的图保存下来就是当前的时间
最近的帖子保存下来就是当时的创建时间
不知道能否解决,

let context = getContext(this);
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
let flag = false
export async function saveImage(fileUrl: string, fileSize: number) {
  console.info('ShowAssetsCreationDialogDemo.');
  if(flag == true){
    return
  }
  flag = true
  let extension = fileUrl.slice(-3)
  try {
    // 获取需要保存到媒体库的位于应用沙箱的图片/视频uri
    let srcFileUris: Array<string> = [
      fileUri.getUriFromPath(fileUrl)
    ];
    let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [
      {
        fileNameExtension: extension,
        photoType: photoAccessHelper.PhotoType.IMAGE,
        subtype: photoAccessHelper.PhotoSubtype.DEFAULT, // 可选
      }
    ];
    console.log('图片大小'+fileSize)

    let desFileUris: Array<string> = await phAccessHelper.showAssetsCreationDialog(srcFileUris, photoCreationConfigs);
    let file1 = fs.openSync(fileUrl, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    let arrayBuffer = new ArrayBuffer(fileSize);
    let readLen = fs.readSync(file1.fd, arrayBuffer);
    let file2 = fs.openSync(desFileUris[0], fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    let writeLen = fs.writeSync(file2.fd, arrayBuffer);
    fs.closeSync(file2);
    fs.closeSync(file1);
    console.info('showAssetsCreationDialog success, data is ' + desFileUris);

  } catch (err) {

    console.error('showAssetsCreationDialog failed, errCode is ' + err.code + ', errMsg is ' + err.message);
  }
flag = false
}

从网络接口下载图片到沙箱地址后调这个函数

试了下好像是最近一段时间的图就会有这个问题 位置不在最上面, 时间长点的就没问题了

在HarmonyOS鸿蒙Next系统中,若遇到拉起弹窗保存图片或视频到相册后文件创建时间不对导致无法展示在最上方的问题,可以通过以下方式修改文件创建时间为当前保存时间:

  1. 获取当前时间:在保存文件之前,使用HarmonyOS提供的API获取当前系统时间。这通常可以通过访问系统时间服务或使用相关的时间库来实现。

  2. 设置文件属性:在文件保存成功后,使用文件操作API修改文件的创建时间属性。HarmonyOS提供了对文件属性的操作接口,可以通过这些接口来设置文件的创建时间为你之前获取的当前系统时间。

  3. 确保权限:在修改文件属性之前,确保应用有权限访问和修改存储中的文件。这通常需要在应用的manifest文件中声明相应的权限,并在运行时请求用户授权。

  4. 测试与验证:修改完成后,进行充分的测试以验证文件创建时间是否正确设置,并确保图片或视频能够按照预期展示在相册的最上方。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部