2012-07-17 22 views
0

我需要打開一個文件,計算出它的MD5,然後將它作爲一個圖像打開,如果md5在C#Winrt/Metro應用程序中是正確的。關於PNG文件的MD5&我如何在C#中使用RandomAccessStreamOverStream?

我的問題是,在WinRT中的散列類需要IBuffers(從FileIO.ReadBufferAsync(StorageFile返回)和圖像類需要一個RandomAccessStream(從StorageFile.OpenReadAsync())返回。

顯然我可以打開文件兩次,並使用這兩個調用,但這似乎效率很低。是否有一種簡單的方法來打開文件,以便我可以將流/ IBuffer傳遞給MD5 HashAlgorithmProvider.HashData()和BitmapImage.SetSource()函數

我發現RandomAccessStreamOverStream函數,我認爲我可以用它來轉換IBuffer.AsStream(),但可以找到沒有辦法在C#中實例化這個。

有沒有人有「正確」的方式來做到這一點的任何想法?我是C#的新手,並且努力想明白爲什麼Metro中有兩個看起來不兼容的流/緩衝概念.... :(

回答

0

哦,親愛的,我缺少的鏈接是byte [] AsBuffer()。從我的字節數組創建IBuffer,然後將其傳遞給散列函數。