HarmonyOS 文件md5值计算问题?

文件md5值参考文档计算出来的跟实际的不一样,希望给出计算方法

2859061928402352179.zip的md5值应该为17e25c43984e649653f2813af69179c6

阅读 555
1 个回答

文件md5 请参考以下代码demo实例

import picker from '@ohos.file.picker';
import fs from '@ohos.file.fs';
import { BusinessError } from '@ohos.base';
import { hash } from '@kit.CoreFileKit';
import Hash from '@ohos.file.hash';

@Entry
@Component
struct PhotoPage {
  @State message: string = 'Hello World';
  private photoSelectOptions = new picker.PhotoSelectOptions();
  private photoViewPicker = new picker.PhotoViewPicker();
  private uris: Array<string> = [];

  aboutToAppear(): void {
    this.photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型为IMAGE
    this.photoSelectOptions.maxSelectNumber = 5; // 选择媒体文件的最大数目
  }

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            this.photoViewPicker.select(this.photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => {
              this.uris = photoSelectResult.photoUris;
              console.info('photoViewPicker.select to file succeed and uris are:' + this.uris);
              let pathDir = getContext(this).filesDir
              let file1 = fs.openSync(this.uris[0])
              let filePath = pathDir + '/' + file1.name
              fs.copyFileSync(file1.fd, filePath)
              console.info("calculate file hash pathDir:" + pathDir);
              Hash.hash(filePath, "sha256").then((str: string) => {
                console.info("calculate file hash succeed:" + str);
              }).catch((err: BusinessError) => {
                console.error("calculate file hash failed with error message: " + err.message + ", error code: " + err.code);
              });
            }).catch((err: BusinessError) => {
              console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
            })
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进