2

3 番目のステートメントで以下の例外が発生しています。ファイルを読み取ろうとしていますが、読み取りストリームを開くことができません。

これは単なるサンプル コードですが、実際のシナリオは異なります。Web ソケットがファイルにバイトを書き込もうとしていて、他のプロセス (音楽プレーヤー) が同じファイルからバイトを読み込もうとしています。このシナリオを実現したい。

      IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();

            var writeStream = storage.OpenFile("sample.txt", 
                                                System.IO.FileMode.OpenOrCreate, 
                                                System.IO.FileAccess.Write, 
                                                System.IO.FileShare.Read);

            var readStream = storage.OpenFile("sample.txt", 
                                                System.IO.FileMode.Open, 
                                                System.IO.FileAccess.Read);

System.IO.IsolatedStorage.IsolatedStorageException がキャッチされました。HResult=-2146233264 Message=IsolatedStorageFileStream での操作は許可されていません。ソース = mscorlib StackTrace: System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor (文字列パス、FileMode モード、FileAccess アクセス、FileShare 共有、Int32 bufferSize、IsolatedStorageFile isf) で System.IO.IsolatedStorage.IsolatedStorageFile.OpenFile (文字列パス、FileModeモード、FileAccess アクセス) で FileReadWriteSample.MainPage.Button_Click(オブジェクト送信者、RoutedEventArgs e) InnerException:

4

2 に答える 2

3

そのファイルのストリームが既に開かれています (2 番目のステートメントを使用)。別のストリームを開く前に、まずそのストリームを破棄する必要があります。

于 2013-04-26T18:36:13.240 に答える