Stream
WinRTに移植する必要があるカスタムを処理する.NETコードがあります。その動機は、アプリが暗号化されたファイル(カスタムStream
)を読み取ることです。完全な.NETで私は使用します
var readFileStream = File.OpenRead(bookPath);
var readDecryptedStream = new MyStream(password, readFileStream);
//it is a zip file
var readZipFile = new ZipFile(readDecryptedStream);
//extract files from the zip file
MyStream
読み取り/書き込みメソッドから継承しStream
、いくつかのエンコードとデコードを実行します。完全なコードはここhttp://dl.dropbox.com/u/73642/mystream.csにあります。このコードは.NETで正常に機能します。
私のWinRT実装は
var file =await ApplicationData.Current.LocalFolder.GetFileAsync(bookPath); //I copied the same file to Local folder
var filestream = await file.OpenStreamForReadAsync();
var readDecryptedStream = new MyStream(password, readFileStream);
ZipArchive z = new ZipArchive(readDecryptedStream , ZipArchiveMode.Read);
このコードの問題はnew ZipArchive(readDecryptedStream , ZipArchiveMode.Read);
、ストリームの読み取りが終了しないことです。readメソッドにブレークポイントを設定するMyStream
と、常にoffset = 0で呼び出されます(したがって、終了することはありません)。
暗号化されていないファイルを使用するとnew ZipArchive(filestream , ZipArchiveMode.Read);
、すべてが機能するため、問題はMyStream
実装にあるはずです。
問題は何ですか?カスタムStream
には、完全な.NETとは異なるWinRTの実装が必要ですか?