PNG文件上的MD5&如何在C#中使用RandomAccessStreamOverStream?

时间:2012-07-17 00:40:16

标签: c# windows-runtime

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

哦亲爱的,我丢失的链接是byte []。AsBuffer()。从我的字节数组创建IBuffer,然后将其传递给散列函数。