0

我需要打开一个文件,计算它的 MD5,然后如果 md5 在 C# Winrt/Metro 应用程序中正确,则将其作为图像打开。

我遇到的问题是 WinRT 中的哈希类需要 IBuffers(从 FileIO.ReadBufferAsync(StorageFile) 返回,而图像类需要 RandomAccessStream(从 StorageFile.OpenReadAsync() 返回)。

显然,我可以两次打开文件并使用这两个调用,但这似乎效率很低。有没有一种简单的方法可以打开文件,我可以将流/IBuffer 传递给 MD5 HashAlgorithmProvider.HashData() 和 BitmapImage.SetSource() 函数。

我找到了我认为可以用来转换 IBuffer.AsStream() 的 RandomAccessStreamOverStream 函数,但找不到在 C# 中实例化它的方法。

有没有人对“正确”的方法有任何想法?我是 C# 的新手,并且很难理解为什么 Metro 中有两个看似不兼容的流/缓冲概念...... :(

4

1 回答 1

0

哦,天哪,我缺少的链接是 byte[].AsBuffer()。从我的字节数组创建 IBuffer,然后将其传递给散列函数。

于 2012-07-17T23:38:52.897 回答