我需要打开一个文件,计算它的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中存在两个看似不兼容的流/缓冲概念.... :(
答案 0 :(得分:0)
哦亲爱的,我丢失的链接是byte []。AsBuffer()。从我的字节数组创建IBuffer,然后将其传递给散列函数。