Vala:操作后自由GChecksum获取正确的MD5哈希值

时间:2015-11-26 22:20:09

标签: hash gtk vala md5sum

我正在学习Vala,我正在尝试构建一个Gtk + Gui,它输出一个文件的MD5哈希值。 目前我正在使用valadoc.org来编写我的应用程序,我正在使用GLib.Checksum来计算校验和。 GLib.Checksum处理MD5,SHA1,SHA256和SHA512(在文档中找到)。 所以我使用文档中的代码来计算输入文件路径的哈希值。我发现Vala没有自动释放GChecksum,我不知道如何手动完成。

感谢您的帮助。

这是我的Vala代码:

private string HashSum( string path, string hash){
    Checksum checksum = new Checksum (ChecksumType.MD5);
    FileStream stream = FileStream.open (path, "rb");
    //var stream = File.new_for_path(path).read();

   uint8 fbuf[100];
   size_t size;

   while ((size = stream.read (fbuf)) > 0){
      checksum.update (fbuf, size);
    }
   unowned string digest = checksum.get_string ();
   stdout.printf ("%s: %s\n", path, digest);

   return @"$hash hash: $digest";
}

1 个答案:

答案 0 :(得分:0)

我想问题出在我的Valac版本上。我将它升级到我在Ubuntu存储库中找到的最后一个:Vala 0.30.0。输出是正确的。