2012-04-17 25 views
4

ファイルの内容をfileStream fsに保存しようとすると、operation not permitted on IsolatedStorageFileStreamエラーが発生します。IsolatedStorageFileStreamエラーで操作が許可されない

var appStorage = IsolatedStorageFile.GetUserStoreForApplication(); 
string[] fileList = appStorage.GetFileNames(); 

foreach (string fileName in fileList) 
    { 
     using (var file = appStorage.OpenFile(fileName, FileMode.Open)) 
     { 
      if (fileName != "__ApplicationSettings") 
      { 
       var fs = new IsolatedStorageFileStream(fileName, FileMode.Open, FileAccess.Read, appStorage); 
       string abc = fs.ToString(); 
       meTextBlock.Text = abc; 
       //MemoryStream ms = appStorage.OpenFile(fileName, FileMode.Open, FileAccess.Read); 

       clientUpload.UploadAsync(SkyDriveFolderId, fileName, fs); 
      } 
    } 
} 

答えて

4

using (var file = appStorage.OpenFile(fileName, FileMode.Open))をなぜ追加しましたか?

私には、ファイルを読み込んで別のファイルを開くストリームを開いていて、前のファイルを閉じないでください。

その行を削除すると(そこに何もしていないと思われる)、正常に動作するはずです。

ああ、fs.ToString()は、ファイルの内容ではなくタイプ名のみを取得します。ファイルを読むには、fsStreamReaderを使用してください。

+1

OMGこのアプローチを試してみてください! Pedro Lamasに感謝します。問題は '(var file = appStorage.OpenFile(fileName、FileMode.Open))'を使用していたことです。 –

+0

ありがとう!私は正確な問題を抱えており、あなたはそれを解決しました!私は別のもので作業を開始する前にファイルストリームを閉じる必要がありました –

1

このエラーは、1つのストリーム(またはリーダーなど)によって隔離されたストレージファイルが開かれ、最初のストリーム(またはリーダーなど)がまだファイルを放棄していない間に別のオブジェクトによってアクセスされている場合に一貫して発生します。隔離されたストレージファイルにアクセスするすべての場所でコードを慎重に実行し、別のファイルにアクセスする前に各ファイルを閉じるようにしてください。 Pedro Lamasはこの特定のケースでは正しいですが、私はちょうど一般的なフィードバックを提供したいと思います。 Googleで「IsolatedStorageFileStreamエラーで許可されていない操作」の質問と回答を検索すると、その傾向が表示されます。しかし、エラーメッセージはより説明的である可能性があります。

0

using (var isf = IsolatedStorageFile.GetUserStoreForApplication()) 
       { 
        if (IsolatedStorageFile.IsEnabled) 
        { 
         if (isf.FileExists(localFileName)) 
         { 
          using (var isfs = new IsolatedStorageFileStream(localFileName, FileMode.Open, isf)) 
          { 
           using (var sr = new StreamReader(isfs)) 
           { 
            var data = sr.ReadToEnd(); 
            if (data != null) 
            { 
             ... 
関連する問題