我正在学习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";
}
答案 0 :(得分:0)
我想问题出在我的Valac版本上。我将它升级到我在Ubuntu存储库中找到的最后一个:Vala 0.30.0。输出是正确的。